博客
关于我
强烈建议你试试无所不能的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

你可能感兴趣的文章
T2695 桶哥的问题——送桶 题解
查看>>
HTML5 表单
查看>>
Android群英传》读书笔记 (3) 第六章 Android绘图机制与处理技巧 + 第七章 Android动画机制与使用技巧...
查看>>
OLEDB和ODBC的区别(优缺点)
查看>>
关于微信公众平台测试号配置失败的问题
查看>>
CLR执行模块基础
查看>>
【NOIP2001】统计单词个数
查看>>
linux常用端口
查看>>
异常处理
查看>>
/proc/uptime详解
查看>>
如何建立合适的索引?
查看>>
acwing 651. 逛画展
查看>>
(待完成)qbxt2019.05 总结12 - 趣味题目 鹰蛋
查看>>
[2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序
查看>>
关于WPF程序只运行一个实例的方法
查看>>
游标的使用
查看>>
图论:点分治
查看>>
mysql
查看>>
C/C++ 知识点---sizeof使用规则及陷阱分析(网摘)
查看>>
java小程序 示例
查看>>