目录
简介
结构
$ tree -I "__pycache*|*.pyc" -FCL 3.|-- database.db|-- models.py|-- templates/| |-- home.html| |-- list.html| |-- result.html| `-- students.html`-- views.py
展示
1. 主页
2. 学生信息查看
3. 添加学生信息
技术
- 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列表页
学生表
姓名 | 地址 | 城市 | 区号 |
{ {row["name"]}} | { {row["addr"]}} | { { row["city"]}} | { {row['pin']}} |
result消息结果页
添加结果 : { { msg }}
返回主页