動画を参考に、Pythonを用いたtodolistのwebアプリ開発講座において、以下のコード (app.py) を作成し、

```

    >>> from app import db
    >>> db.create_all()
    
```

のコマンドを打つことでデータベースの作成を行いたいのですが、何度やってもうまくいきません。(動画では18分目ぐらいからの内容)

**参考にした動画:**  
[Python(Flask)×Webアプリ開発入門コース
(YouTube)](https://www.youtube.com/watch?v=jP7p2okKdJA)

### 気になる点

以下に示すapp.pyにおいて「Column」「Integer」「String」「DateTime」において

**クラス 'SQLAlchemy' の未解決の属性参照 'Column' **

が警告文として出ている点が原因かなと思いました。

### 試したこと

  * 警告文の検索
  * SQLAlchemyのバージョンを下げて再インストール(1.3.20よりバージョンが上では通らないことがあるため)

### バージョン

editor:pycharm  
interpreter:3.8  
OS:windows10  
SQLAlchemy:1.3.20

どうぞよろしくお願いいたします。

* * *

### ソースコード

**app.py**

```

    from flask import Flask, render_template
    from flask_sqlalchemy import SQLAlchemy
    
    app = Flask(__name__)
    app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///todo.db"
    db = SQLAlchemy(app)
    
    
    class Post(db.Model):
        id = db.Column(db.Integer, primary_key=True)
        title = db.Column(db.String(30), nullable=False)
        detail = db.Column(db.String(100))
        due = db.Column(db.DateTime, nullable=False)
    
    
    @app.route("/")
    def index():
        return render_template("index.html")
    
    
    if __name__ == "__main__":
        app.run(debug=True)
    
```
CC BY-SA 4.0
2022-02-22T04:40:03.960
86508
2023-05-04T06:02:35.370
2022-02-22T08:18:21.060
3060
51554
question
python sql database flask sqlalchemy
db.create_all()を用いたデータベースの作成が出来ない
質問に書かれているYouTube動画と同等の、コメントで紹介した以下の記事に従って作業しましたが、質問に書かれた段階(5-2|データベースの項目定義のターミナル：Python対話型シェルによるデータベースの作成)の作業は正常に出来ています。  
[【保存版】30分でFlask入門！Webアプリの作り方をPythonエンジニアが解説](https://tech-diary.net/flask-
introduction/)

質問との環境の違いは以下の物になるでしょう。

PyCharm: 使っていない  
Python版数: 3.10.2  
OS: 同じもの  
SQLAlchemy: 1.4.31

`app.py`の違いは文字列を示すのが`'`で囲むか`"`で囲むかの違いだけです。試しに質問のソースコードと同じものに変えてみましたが、そちらも正常に動作しました。

その他も含めたモジュール一覧が以下になります。

```

    Package          Version
    ---------------- -------
    click            8.0.4
    colorama         0.4.4
    Flask            2.0.3
    Flask-SQLAlchemy 2.5.1
    greenlet         1.1.2
    itsdangerous     2.1.0
    Jinja2           3.0.3
    MarkupSafe       2.1.0
    pip              22.0.3
    setuptools       60.9.3
    SQLAlchemy       1.4.31
    Werkzeug         2.0.3
    wheel            0.37.1
    
```

作業時に出ていた`app.py`から`db`をimportした時の警告は以下になり、質問の「気になる点」や紹介記事での表示とも違ったものになっています。しかし`db.create_all()`は正常に終了しています。

```

    C:\Develop\Python\vFLSK\lib\site-packages\flask_sqlalchemy\__init__.py:872: FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future.  Set it to True or False to suppress this warning.
      warnings.warn(FSADeprecationWarning(
    
```

他にはPyCharm使用有無くらいでしょうか。  
Python版数の違いは記事のPythonが3.7.3であることを考えると特に問題とは思えません。

ここまでの作業では、「SQLAlchemyのバージョンを下げて再インストール(1.3.20よりバージョンが上では通らないことがあるため)」というのが何かの誤解なのかもしれません。

試しに`SQLAlchemy`の版数を最新のものに変えてみてはどうでしょう？
CC BY-SA 4.0
2022-02-23T10:44:13.157
86534
2022-02-23T10:44:13.157
26370
86508
answer