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

你可能感兴趣的文章
黑马程序员--抽象类与接口
查看>>
IaaS,PaaS,SaaS 的区别
查看>>
Python复习基础篇
查看>>
关于Cocos2d-x中背景音乐和音效的添加
查看>>
checkbox和文字对齐
查看>>
JConsole远程连接配置 服务器监控工具
查看>>
了解HTTP协议栈(实践篇)
查看>>
loj10035. 「一本通 2.1 练习 1」Power Strings
查看>>
%s的用法
查看>>
调用底层不能直接访问的类和方法
查看>>
清理缓存的方法 #DF
查看>>
JAVA array,map 转 json 字符串
查看>>
2017-12-27练习
查看>>
NET设计规范(二) 命名规范
查看>>
VMware 9.0.1安装Mac OS X Mountain Lion 10.8.2
查看>>
SSL延迟
查看>>
android新手关于左右滑动的问题,布局把<android.support.v4.view.ViewPager/><ImageView/> 放在上面就不行了。...
查看>>
深入理解DIP、IoC、DI以及IoC容器
查看>>
赋值文件
查看>>
Vue 数组 字典 template v-for 的使用
查看>>