gpt4 book ai didi

python - 名称错误 : name 'app' is not defined with Flask

转载 作者:太空狗 更新时间:2023-10-30 00:03:01 26 4
gpt4 key购买 nike

我的项目中有以下结构

\ myapp
\ app
__init__.py
views.py
run.py

以及以下代码:

运行.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

我正在尝试使用 工厂设计模式 创建我的 app 对象,每次都使用不同的 config 文件和一个子域调度程序能够根据用户请求的子域创建和路由不同的对象。

我正在关注他们谈论的 Flask 文档,所有这些:

但我无法让它工作,似乎在我的实际项目 structure 中没有办法将 app 对象传递给我的 views .py 并抛出 NameError

NameError: name 'app' is not defined

最佳答案

按照 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!"

关于python - 名称错误 : name 'app' is not defined with Flask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21028254/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com