Plotly Dash运行报错NameError: name 'app' is not defined问题咨询
问题原因
- 所有Dash应用必须先初始化一个
Dash类的实例,行业内默认将这个实例命名为app,你代码里跳过了初始化步骤,直接给app.layout赋值,解释器找不到app变量就会抛出对应命名错误。 - 官网的功能示例通常会省略基础初始化代码,默认开发者已经掌握最基础的应用创建逻辑,直接复制片段就会出现漏写代码的问题。
修正后的完整代码
import datetime import dash import dash_html_components as html # 新增这行初始化代码即可解决问题 app = dash.Dash(__name__) def serve_layout(): return html.H1('The time is: ' + str(datetime.datetime.now())) app.layout = serve_layout if __name__ == '__main__': app.run_server()
补充说明
- 初始化时传入的
__name__是Python内置变量,作用是告诉Dash当前应用的根目录,方便后续加载静态资源等操作,属于固定基础写法。 - 你当前用函数动态赋值
layout的写法是正确的,每次刷新页面都会重新执行serve_layout函数获取最新时间,符合代码原本的功能预期。
内容的提问来源于stack exchange,提问作者Confused
相关产品推荐
相关产品推荐

