我的项目中有以下结构
\ myapp
\ app
__init__.py
views.py
run.py
以下代码:
run.py
from app import create_app
if __name__ == '__main__':
app = create_app()
app.run(debug=True, host='0.0.0.0', port=5001)
views.py
@app.route("/")
def index():
return "Hello World!"
_ 初始化 _。PY
from flask import Flask
def create_app():
app = Flask(__name__)
from app import views
return app
我正在尝试使用factory design pattern
每次创建具有不同app
文件的config
个对象,并且子域调度程序能够创建和路由不同的对象,具体取决于用户请求上的subdomain
。
我正在关注他们谈论的Flask文档,所有这些:
但是我无法使其工作,似乎我的实际项目structure
无法将app
对象传递给我的views.py
并且它会抛出{ {1}}
NameError:名称'app'未定义
答案 0 :(得分:5)
在做了Miguel建议之后(使用Blueprint
)一切正常,这是最终的代码,工作:
<强> _ init.py _ 强>
...
def create_app(cfg=None):
app = Flask(__name__)
from api.views import api
app.register_blueprint(api)
return app
<强> views.py 强>
from flask import current_app, Blueprint, jsonify
api = Blueprint('api', __name__)
@api.route("/")
def index():
# We can use "current_app" to have access to our "app" object
return "Hello World!"