Flask应用添加数据库操作后index路由首页无法加载如何解决
问题解决步骤
- 修正代码缩进错误
app.py中cnt_schema、cnts_schema变量定义,以及@app.route装饰的index视图函数存在多余前置缩进,需删除前置空格顶格编写,Python对缩进敏感,错误缩进会导致路由无法正常注册、变量作用域异常。 - 修正模板表单提交路径错误
templates/index.html中表单的action属性url_for参数填写错误,url_for需传入视图函数名,将<form class="col s12" action="{{ url_for("app")}}" method="post">修改为<form class="col s12" action="{{ url_for("index")}}" method="post">。 - 修正模型实例化方式错误
Flask-SQLAlchemy的模型默认仅支持关键字参数初始化,不支持直接传入位置参数,将cnt= contact(name,mobile,email,cmp_nm,sub,msg)修改为:
cnt = contact( name=name, mobile=mobile, email=email, company_name=cmp_nm, subject=sub, message=msg )
- 修正模型定义参数错误
将contact模型id字段的primary_key="True"改为布尔值primary_key=True;将date_posted字段的default=dt.datetime.now()改为default=dt.datetime.now,避免每次插入数据都使用程序启动时间而非请求发生的当前时间。 - 补充数据库表创建逻辑
在app.py中db=SQLAlchemy(app)代码后补充表创建逻辑,避免表不存在导致的提交报错:
with app.app_context(): db.create_all()
- 可选优化:修正前端输入框类型错误
templates/index.html中邮箱输入框的type="tel"改为type="email",公司名称输入框的type="tel"改为type="text",避免前端校验逻辑异常。
内容的提问来源于stack exchange,提问作者LoneWolf
相关产品推荐
相关产品推荐

