博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Flask – SQLite:增加成员
阅读量:4599 次
发布时间:2019-06-09

本文共 3600 字,大约阅读时间需要 12 分钟。

目录

简介

结构

$ tree -I "__pycache*|*.pyc" -FCL 3.|-- database.db|-- models.py|-- templates/|   |-- home.html|   |-- list.html|   |-- result.html|   `-- students.html`-- views.py

展示

1. 主页

720033-20190718114619823-875159732.png

2. 学生信息查看

720033-20190718114634500-669078233.png

3. 添加学生信息

720033-20190718114652463-2107114005.png

技术

  • Flask – SQLite的使用
  • flask中表单数据的传递

运行

python .\views.py

代码

创建数据库表单

# crdb.pyimport sqlite3conn = sqlite3.connect('database.db')print "Opened database successfully";conn.execute('CREATE TABLE students (name TEXT, addr TEXT, city TEXT, pin TEXT)')print "Table created successfully";conn.close()

views视图

from flask import Flask, render_template, requestimport sqlite3 as sqlapp = Flask(__name__)@app.route('/')def home():    return render_template('home.html')@app.route('/enternew')def new_student():    return render_template('students.html')@app.route('/addrec', methods=['POST', 'GET'])def addrec():    """添加成员"""    if request.method == 'POST':        try:            nm = request.form['nm']            addr = request.form['add']            city = request.form['city']            pin = request.form['pin']            with sql.connect("database.db") as con:                cur = con.cursor()                cur.execute(                    "INSERT INTO students(name, addr, city, pin) VALUES(?, ?, ?, ?)", (nm, addr, city, pin))                con.commit()                msg = "添加成功"        except:            con.rollback()            msg = "添加失败"        finally:            return render_template("result.html", msg=msg)            con.close()@app.route('/list')def list():    """查询"""    con = sql.connect("database.db")    con.row_factory = sql.Row    cur = con.cursor()    cur.execute("select * from students")    rows = cur.fetchall()    return render_template("list.html", rows=rows)if __name__ == '__main__':    app.run(debug=True)

models模块

import sqlite3 as liteclass Database():    def __init__(self, db='database.db'):        self.con = lite.connect(db, check_same_thread=False)        self.cur = self.con.cursor()    def create_students(self):        """创建表单"""        with self.con:            sql = """create table students(                        id integer primary key autoincrement,                        name TEXT not null,                        addr TEXT not null,                        city TEXT,                        pin TEXT)"""            self.cur.execute("DROP TABLE IF EXISTS students")            self.cur.execute(sql)    def insert_students(self, name, addr, city, pin):        """插入用户信息"""        with self.con:            sql = "INSERT INTO students(name, addr, city, pin) VALUES(?, ?, ?, ?)"            self.cur.execute(sql, (name, addr, city, pin))if __name__ == '__main__':    db = Database('database.db')    db.create_students()

home主页

    
主页

查看学生信息

添加学生信息

list列表页

          

学生表


{% for row in rows %}
{% endfor %}
姓名 地址 城市 区号
{
{row["name"]}}
{
{row["addr"]}}
{
{ row["city"]}}
{
{row['pin']}}
返回主页

result消息结果页

         

添加结果 : {
{ msg }}

返回主页

studentst添加成员

         

学生信息

姓名
地址
城市
区号

转载于:https://www.cnblogs.com/xuwei1/p/11206324.html

你可能感兴趣的文章
数据库的创建和删除
查看>>
最简单的三层实例【插入据
查看>>
设计模式学习笔记——Prototype原型模式
查看>>
pom.xml里有红叉报错的解决办法
查看>>
Perl last和next的用法区别
查看>>
Selenium 管理 Cookies
查看>>
exceptionfunction[LeetCode]Permutations
查看>>
Linux(2)_常用命令2
查看>>
自定义分页
查看>>
[转]DELPHI——调试(1)
查看>>
JS秒数转成分秒时间格式
查看>>
xp_cmdshell 命令的开启与关闭,和状态查询
查看>>
Linux sudoers
查看>>
MySQL详解(18)-----------分页方法总结
查看>>
bzoj 4595 激光发生器
查看>>
multi cookie & read bug
查看>>
js时间转换
查看>>
(转载) Android Studio你不知道的调试技巧
查看>>
POJ2231 Moo Volume 递推 C语言
查看>>
struts2类型转换的具体流程
查看>>