MVC構造のQuartアプリケーションにFlask-SqlAlchemyを実装しようとしています。だから私はすべてのモデルがそのファイルと機能を持っていることを望みます.
これは私のファイルです:
app.py
__package__ = 'nini'
from .setups import create_app
from .db import db
if __name__ == '__main__':
app = create_app()
db.init_app(app)
app.run(host='127.0.0.1', debug=True)
db.py
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
tests.pyモデルファイル
from nini.db import db
import datetime
class Test(db.Model):
id = db.Column(db.Integer, primary_key=True)
text = db.Column(db.VARCHAR)
created = db.Column(db.DATETIME, default=datetime.datetime.now())
pass
def __init__(self, text):
self.text = text
def __repr__(self):
return '<Test %r>' % self.id, self.created
@classmethod
async def create_new(cls, **kw):
obj = cls(**kw)
db.session.add(obj)
db.session.commit()
pass
test.py
import logging
from quart import jsonify, app, current_app
from quart_openapi import PintBlueprint
from datetime import datetime
from nini.models import tests
from nini.db import db
results = PintBlueprint('test', __name__)
@results.route('/test/test')
async def get_tests():
logging.error("HELLO")
t = await tests.Test.create_new(text="TT")
logging.error("Done")
return jsonify(t), 200
pathを実行する/test/test
と、 `db.session.add(obj)1 行まで正常に動作します。次に、次のエラーが表示されます。
RuntimeError: アプリケーションが見つかりません。ビュー関数内で作業するか、アプリケーション コンテキストをプッシュします。http://flask-sqlalchemy.pocoo.org/contexts/を参照して ください。INFO:quart.serving:127.0.0.1:50537 GET /テスト/テスト 1.1 500 - 21836
このコードを次の場所に追加してみましたapp.py
:
db.init_app(app) ### This line was already in my code
with app.app_context():
db.create_all()
これも好きです:
db.init_app(app) ### This line was already in my code
app.app_context().push():
db.create_all()
私もコンテキストで実行create_new
してみました。内部にテストモデルをtasts.py
実装してみましたcreate_all
db.py
基本的に、db.init_app(app)
使用するたびにdb
エラーが発生します。
助けていただければ幸いです。