如果每次都要在shell中进行数据库的操作,估计是一件十分不爽的活动,因此最好是在视图函数中通过可视化的方式进行操作。
hello.py中index()视图函数修改
@app.route('/',methods=['GET','POST'])
def index():
form = NameFome()
if form.validate_on_submit():
user = User.query.filter_by(username=form.name.data).first()
if user is None:
user = User(username = form.name.data)
db.session.add(user)
session['known'] = False
else:
session['known'] = True
session['name'] = form.name.data
form.name.data =''
return redirect(url_for('index'))
return render_template('index.html',form=form,name=session.get('name'), known=session.get('known',False))
变动说明:
- 采用查询判断提交的user是否存在数据库中
- 增加了数据库提交db.session.add(user)
- 在session中增加known用于传递给模板
模板修改
{% extends 'base.html' %}
{% import "bootstrap/wtf.html" as wtf %}
{% block page_content %}
<div class='page_content'>
<h1>Hello,
{% if name %} {{ name }}
{% else %}Stranger
{% endif %}!
</h1>
{% if not known %}
<p>Pleased to meet you </p>
{% else %}
<p>Happy to see you again</p>
{% endif %}
</div>
{{ wtf.quick_form(form) }}
{% endblock %}
增加一个条件语句用于针对不同用户显示不同内容