系统环境: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 %}
<div class="container">
<div class="page-header">
<h1>您好, {% if name %}{{ name }}{% else %}游客{% endif %},欢迎来到我的博客!</h1>
{% if not known %}
<p>很高兴见到你</p>
{% else %}
<p>非常高兴,再一次见到您</p>
{% endif %}
</div>
</div>
{{ 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)

第二次,输入用户名:小明。发现数据库里已经有了。

【简说Python WEB】视图函数操作数据库的更多相关文章

  1. 【简说Python WEB】数据库

    目录 [简说Python WEB]数据库 数据库表 docker安装MySQL Flask-SQLAlchemy操纵MySQL数据库 初始化 定义模型 定义关系 数据库的CRUD操作 创建表 inse ...

  2. 【简说Python WEB】Flask应用的文件结构

    目录 [简说Python WEB]Flask应用的文件结构 1.文件结构的目录 2.配置程序--config.py 3.app应用包 4.剥离出来的email.py 5.蓝本(BLueprint)的应 ...

  3. 使用python简单连接并操作数据库

    python中连接并操作数据库 图示操作流程 一.使用的完整流程 # 1. 导入模块 from pymysql import connect # 2. 创建和数据库服务器的连接,自行设置 服务器地址, ...

  4. 【简说Python WEB】Web应用部署

    目录 [简说Python WEB]Web应用部署 应用层 缓存层 数据层 Gunicorn 的应用 1.安装Gunicorn 2.Gunicorn的启动 Nginx 的应用 1.docker方式部署安 ...

  5. 【简说Python WEB】Flask-Moment

    目录 [简说Python WEB]Flask-Moment 系统环境:Ubuntu 18.04.1 LTS Python使用的是虚拟环境:virutalenv Python的版本:Python 3.6 ...

  6. 【简说Python WEB】flask-mail电子邮件

    目录 flask-mail flask shell发送邮件 系统环境:Ubuntu 18.04.1 LTS Python使用的是虚拟环境:virutalenv Python的版本:Python 3.6 ...

  7. python学习笔记:操作数据库

    1.下载安装模块 第一种:cmd下:执行命令下载安装:pip3 install pymysql 第二种:IDE下pycharm python环境路径下添加模块 2.连接数据库 import pymys ...

  8. python如何用sqlalchemy操作数据库

    工具:mysql  python sqlalchemy ---------------------------------------- 准备工作: 1.安装mysql 如果是window环境请参考 ...

  9. Python学习-字符串函数操作3

    字符串函数操作 isprintable():判断一个字符串中所有字符是否都是可打印字符的. 与isspace()函数很相似 如果字符串中的所有字符都是可打印的字符或字符串为空返回 True,否则返回 ...

随机推荐

  1. python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案

    人生苦短,我用python!为什么很多人喜欢用python,因为包多呀,各种调包.但是调包有的时候也调的闹心,因为安装包不是失败就是很慢,很影响自己的工作进度,这里给出一个pip快速安装工具包的办法, ...

  2. php结合Redis实现高并发下的秒杀抢购功能

    实现思路 准备两个队列A和B,假设A队列的名称为stock,用于存放商品总库存信息,B队列的名称为users,用于存放抢购成功后的用户信息.每当有用户进行抢购操作时,先从A队列弹出一个元素,如果该元素 ...

  3. 基于OpenDDS应用程序开发(3)订阅端实现

    连续的三篇博文演示如何基于OpenDDS开发应用程序,将数据从发布端节点发送到订阅端节点,该示例程序由一个发布者发布数据,一个订阅者订阅数据,使用默认的QoS策略和TCP/IP传输方式. 本文是第三篇 ...

  4. 数位dp对于状态描述与发现的一些感悟

    今天刷的数位dp 第一题看了题解以后知道了数位dp的基本板子,写数位dp的方式(运用记忆化递归的方法)已经基本固定. 那么接下来的难点主要还是对于题目描述的问题,如何抽象成dp中的状态.就今天刷的题来 ...

  5. JAVA9中文API百度网盘免费下载

    JAVA9中文API百度网盘免费下载: https://pan.baidu.com/s/1tvHYQA8yyAS4xUFxwWrx_Q 提取码: 6e5h

  6. loadrunner通过socket测接口

    #include "lrs.h" Action() {     //建立到服务端的连接     lrs_create_socket("socket1",&quo ...

  7. androidthreadtest<CODE 2 chaper9>

    学习目的:1.了解android线程的使用 2.了解主线程与子线程区别 3.解析异步处理机制主线程与子线程:所谓主线程,在Windows窗体应用程序中一般指UI线程,这个是程序启动的时候首先创建的线程 ...

  8. css之制作三角形

    箭头向上三角形 #triangle-up { width: 0; height: 0; border-left: 50px solid transparent; border-right: 50px ...

  9. Random Forest And Extra Trees

    随机森林 我们对使用决策树随机取样的集成学习有个形象的名字–随机森林. scikit-learn 中封装的随机森林,在决策树的节点划分上,在随机的特征子集上寻找最优划分特征. import numpy ...

  10. Kubernetes搭建过程中使用k8s.gcr.io、quay.io、docker.io的镜像加速

    前言 因为众所周知的原因,在使用Kubernetes和docker的时候会出现一些镜像无法拉取或者速度较慢的情况,错误信息类似以下: [ERROR ImagePull]: failed to pull ...