web app 作成 flask について
Q&A
Closed
解決したいこと
このサイトに沿って to do list を作成しています。
https://tech-diary.net/flask-introduction/#index_id1
db.create_all() をREPLにて実行し dbを作成したいが、エラーが発生してしまいます。
環境
macBook pro m1 Monterey
VScode 1.72.0 (Universal)
anaconda
発生している問題・エラー
>>> db.create_all()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/takuyasuzuki/miniforge3/envs/ds_env/lib/python3.9/site-packages/flask_sqlalchemy/extension.py", line 868, in create_all
self._call_for_binds(bind_key, "create_all")
File "/Users/takuyasuzuki/miniforge3/envs/ds_env/lib/python3.9/site-packages/flask_sqlalchemy/extension.py", line 839, in _call_for_binds
engine = self.engines[key]
File "/Users/takuyasuzuki/miniforge3/envs/ds_env/lib/python3.9/site-packages/flask_sqlalchemy/extension.py", line 628, in engines
app = current_app._get_current_object() # type: ignore[attr-defined]
File "/Users/takuyasuzuki/miniforge3/envs/ds_env/lib/python3.9/site-packages/werkzeug/local.py", line 513, in _get_current_object
raise RuntimeError(unbound_message) from None
RuntimeError: Working outside of application context.
This typically means that you attempted to use functionality that needed
the current application. To solve this, set up an application context
with app.app_context(). See the documentation for more information.
>>>
該当するソースコード
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)
自分で試したこと
1.
flask ドキュメントにある
with app.app_context():
init_db()
を9行目あたり(db = SQLAlchemy(app))の次の行に入れて実行してみました。
app.pyをimportするところでエラーが出てしまいました。
2.
参考サイトにはyoutube動画があり、 SQLAlchemy==1.3.20 にすると
うまくいくと言うコメントがあったので、インストールして実行してみましたが
ダメだったので 1.4.18 に戻しました。
なんだかんだここで足踏み状態になり3日目です、、
どなたかご教授お願いします。
よろしくお願いします。
1