Python 官方文档:入门教程 => 点击学习
报错的原因这个错误消息表明你在使用 flask 时出现了一个错误,该错误是由 `NoAppException` 引发的,它表明应用程序函数引用必须是简单名称。这通常是由于在创建 Flask 应用程序实例时,将应用程序函数作为一个调用,而不是
这个错误消息表明你在使用 flask 时出现了一个错误,该错误是由 `NoAppException` 引发的,它表明应用程序函数引用必须是简单名称。
这通常是由于在创建 Flask 应用程序实例时,将应用程序函数作为一个调用,而不是一个简单的名称传递给了`Flask`函数,导致这个错误。 例如,如果你有这样一个应用程序函数:
def create_app():
app = Flask(__name__)
# ...
return app
你需要这样做:
app = create_app()
而不是这样:
app = create_app()()
解决这个问题的一种方法是确保传递给 `Flask` 函数的应用程序函数是一个简单的名称,而不是一个函数调用。这可以通过更改代码来实现,例如,如果你当前正在这样做:
app = Flask(__name__)()
更改为:
app = Flask(__name__)
如果你不想改变代码结构,可以使用其他方法来解决这个问题,例如通过重写你的应用程序函数来确保它返回一个 Flask 应用程序实例而不是一个调用。
例如,如果你有这样一个应用程序函数:
def create_app():
app = Flask(__name__)
# ...
return app
你可以这样做:
app = create_app
或者在 create_app() 函数里面调用app,返回app,这样就可以在调用函数时直接返回app,而不用再加一层括号。
这样就可以避免"Function reference must be a simple name"的问题了。
是的,例如在这里是一个使用单独的应用程序工厂的示例:
from flask import Flask
def create_app():
app = Flask(__name__)
# configure the app here
# ...
@app.route('/')
def hello():
return 'Hello, World!'
return app
app = create_app()
if __name__ == '__main__':
app.run()
这里, `create_app` 函数返回了一个 Flask 应用程序实例,而不是一个函数调用。然后将应用程序实例赋值给全局变量 `app`,在这种情况下,这个应用程序实例可以由你自己的代码以及 Flask 提供的脚本直接使用。
或者如果你喜欢这样写:
from flask import Flask
def create_app():
app = Flask(__name__)
# configure the app here
# ...
@app.route('/')
def hello():
return 'Hello, World!'
return app()
app = create_app
if __name__ == '__main__':
app.run()
在这种情况下,create_app()函数直接返回了app,而不是app(),在这种情况下,你的代码就不需要再调用一次函数了。
--结束END--
本文标题: 为什么NoAppException(f"Function reference must be a simple name: {app_name!r}."),怎么解决
本文链接: https://lsjlt.com/news/569627.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0