Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 烧瓶上无信息闪烁,无错误信息 背景和问题_Python_Html_Postgresql_Flask_Sqlalchemy - Fatal编程技术网

Python 烧瓶上无信息闪烁,无错误信息 背景和问题

Python 烧瓶上无信息闪烁,无错误信息 背景和问题,python,html,postgresql,flask,sqlalchemy,Python,Html,Postgresql,Flask,Sqlalchemy,当用户使用Flask在web应用程序上正确或错误地输入表单时,我尝试实现一个消息闪烁功能 当我执行以下程序时,成功地将数据从窗体插入数据库 但是,调用消息闪烁失败,并且没有错误消息。单击“创建”按钮后,仅显示插入的数据,并且在我当前的程序上没有消息闪烁 我应该如何修复我的程序 公文 阅读!,我不确定我应该如何为我的程序使用密钥 程序 行刑 $ FLASK_APP=app.py FLASK_DEBUG=true flask run app.py 从flask导入flask、flash、rend

当用户使用Flask在web应用程序上正确或错误地输入表单时,我尝试实现一个消息闪烁功能

当我执行以下程序时,成功地将数据从窗体插入数据库

但是,调用消息闪烁失败,并且没有错误消息。单击“创建”按钮后,仅显示插入的数据,并且在我当前的程序上没有消息闪烁

我应该如何修复我的程序

公文 阅读!,我不确定我应该如何为我的程序使用密钥

程序 行刑

$ FLASK_APP=app.py FLASK_DEBUG=true flask run
app.py

从flask导入flask、flash、render_模板、请求、重定向、url_for、中止、jsonify
从flask_sqlalchemy导入sqlalchemy
导入系统
app=烧瓶(名称)
app.secret_key=b“u5”y2L“F4Q8z\n\xec]/”
app.config['SQLALCHEMY\u DATABASE\u URI']='postgres://username@localhost:5432/sample'
db=SQLAlchemy(应用程序)
类Todo(db.Model):
__tablename_uu='todos'
id=db.Column(db.Integer,主键=True)
name=db.Column(db.String)
city=db.Column(db.String(120))
#TODO:使用Flask Migrate实现任何缺少的字段,作为数据库迁移
定义报告(自我):
返回f“”
db.create_all()
@app.route('/todos/create',methods=['POST'])
def create_todo():
错误=错误
正文={}
尝试:
name=请求。表单['name']
城市=请求。表格['city']
todo=todo(名称=名称,城市=城市)
如果名称==“”:
flash(“写下你的名字”,“失败”)
elif city==“”:
flash(“写下你的城市”,“失败”)
db.session.add(todo)
db.session.commit()
body['name']=todo.name
body['city']=todo.city
flash(“已提交”、“成功”)
除:
错误=真
db.session.rollback()
打印(sys.exc_info())
最后:
db.session.close()
如果出现错误:
中止(400)
其他:
返回jsonify(正文)
@应用程序路径(“/”)
def index():
返回呈现模板('index.html',data=Todo.query.all())
index.html


文本应用程序
.隐藏{
显示:无;
}
名称
城市
出了点问题!
    {数据%中d的%s}
  • {{d.name}
  • {{d.city}
  • {%endfor%}
const nameInput=document.getElementById('name'); const cityInput=document.getElementById('city'); document.getElementById('form').onsubmit=function(e){ e、 预防默认值(); const name=nameInput.value; const city=cityInput.value; descInput.value=''; 获取('/todos/create'{ 方法:“POST”, 正文:JSON.stringify({ “名称”:名称, “城市”:城市, }), 标题:{ “内容类型”:“应用程序/json”, } }) .then(response=>response.json()) 。然后(jsonResponse=>{ log('response',jsonResponse); li=document.createElement('li'); li.innerText=名称; li.innerText=城市; document.getElementById('todos').appendChild(li); document.getElementById('error')。className='hidden'; }) .catch(函数(){ document.getElementById('error')。className=''; }) }
环境 Python 3.6.0

烧瓶1.1.1

SQLAlchemy 1.3.10


psql 11.5

闪现消息不会自动呈现,您必须这样做。以下是来自以下网站的示例jinja模板代码:

{% with messages = get_flashed_messages() %}
  {% if messages %}
    <ul class=flashes>
    {% for message in messages %}
      <li>{{ message }}</li>
    {% endfor %}
    </ul>
  {% endif %}
{% endwith %}
<input type= "text" name="name" required/>