小编Abg*_*o80的帖子

sqlalchemy的Flask应用程序上下文

我正在研究烧瓶中的小休息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)

python flask flask-sqlalchemy flask-restful

10
推荐指数
1
解决办法
4477
查看次数

标签 统计

flask ×1

flask-restful ×1

flask-sqlalchemy ×1

python ×1