系统环境:Ubuntu 18.04.1 LTS
Python使用的是虚拟环境:virutalenv
Python的版本:Python 3.6.9
【简说Python WEB】视图函数操作数据库
app.py我们需要把5-a中用到了数据库操作,加入到如下代码:
@app.route('/', methods=['GET', 'POST'])
def index():
form = NameForm()
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)
db.session.commit()
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))
首先,我们会在数据库查询是否有这个人。如果没有的话,会插入这个username。然后下次,再次执行同样的用户名的话。会提示非常高兴,再一次见到您
index.hmtl需要修改模板内容,如下:
{% extends "base.html" %}
{% import "bootstrap/wtf.html" as wtf %}
{% block title %}zsdblog{% endblock %}
{% block content %}
您好, {% if name %}{{ name }}{% else %}游客{% endif %},欢迎来到我的博客!
{% if not known %}
很高兴见到你
{% else %}
非常高兴,再一次见到您
{% endif %}
{{ wtf.quick_form(form) }}
{% endblock %}
演示效果:
第一次没有任何数据,显示为游客。
第一次,输入用户名:小明。
MySQL数据库插入了一个新的数据。
mysql> select * from users;
+----+----------+---------+
| id | username | role_id |
+----+----------+---------+
| 2 | 胡轲 | 2 |
| 3 | 小黄 | NULL |
| 4 | 小明 | NULL |
+----+----------+---------+
3 rows in set (0.00 sec)
第二次,输入用户名:小明。发现数据库里已经有了。