我正在研究烧瓶中的小休息api.Api具有注册请求并生成单独线程以在后台运行的路由.这是代码:
def dostuff(scriptname):
new_thread = threading.Thread(target=executescript,args=(scriptname,))
new_thread.start()
Run Code Online (Sandbox Code Playgroud)
线程启动但是当我尝试从executioncript函数插入db时它会出错.它抱怨db对象没有在应用程序中注册.
我正在动态创建我的应用程序(使用api作为Blueprint).
这是应用程序的结构
-run.py ## runner script
-config
-development.py
-prod.py
-app
-__init__.py
- auth.py
- api_v1
- __init__.py
- routes.py
- models.py
Run Code Online (Sandbox Code Playgroud)
这是我的跑步者脚本run.py:
from app import create_app, db
if __name__ == '__main__':
app = create_app(os.environ.get('FLASK_CONFIG', 'development'))
with app.app_context():
db.create_all()
app.run()
Run Code Online (Sandbox Code Playgroud)
以下是app/__init__.py创建应用程序的代码:
from flask import Flask, jsonify, g
from flask.ext.sqlalchemy import SQLAlchemy
db = SQLAlchemy()
def create_app(config_name):
"""Create an application instance."""
app = Flask(__name__)
# apply configuration
cfg = os.path.join(os.getcwd(), …Run Code Online (Sandbox Code Playgroud)