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

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

目录

简介

结构

$ tree -I "__pycache*|*.pyc" -FCL 3.|-- database.db|-- readme.md|-- templates/|   |-- addnew.html|   |-- home.html|   `-- show_all.html`-- views.py

展示

1. 主页

720033-20190719214954510-95842715.png

2. 学生信息查看

720033-20190719215106361-986697090.png

3. 添加学生信息

720033-20190719215214766-1723489616.png

技术

  • Flask – SQLAlchemy的使用
  • 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, request, flash, url_for, redirect, render_templatefrom flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'app.config['SECRET_KEY'] = "random string"app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = Falsedb = SQLAlchemy(app)class Student(db.Model):    # __tablename__ = 'student'    id = db.Column(db.Integer, primary_key=True)    name = db.Column(db.String(100))    city = db.Column(db.String(50))    addr = db.Column(db.String(200))    pin = db.Column(db.String(10))    def __init__(self, name, city, addr, pin):        self.name = name        self.city = city        self.addr = addr        self.pin = pin@app.route('/')def home():    """主页"""    return render_template('home.html')@app.route('/show_all')def show_all():    """展示所有"""    data = Student.query.all()    return render_template('show_all.html', students=data)@app.route('/addnew', methods=['GET', 'POST'])def addnew():    """添加新成员"""    if request.method == 'POST':        f_name = request.form['name']        f_city = request.form['city']        f_addr = request.form['addr']        f_pin = request.form['pin']        if not f_name or not f_city or not f_addr:            flash('请填入必要项')        else:            stuinfo = Student(f_name, f_city, f_addr, f_pin)            db.session.add(stuinfo)            db.session.commit()            flash('添加成功')            return redirect(url_for('show_all'))    return render_template('addnew.html')if __name__ == '__main__':    # db.drop_all()    db.create_all()    app.run(debug=True)

home主页

    
主页

查看学生信息

添加学生信息

添加成员addnew.html

         

学生信息表


{%- for category, message in get_flashed_messages(with_categories = true) %}
{
{ message }}
{%- endfor %}

返回主页

展示页show_all

   

学生表


添加新成员

{% for student in students %}
{% endfor %}
姓名 城市 地址 邮编
{
{ student.name }}
{
{ student.city }}
{
{ student.addr }}
{
{ student.pin }}

消息提示

消息通知: {%- for message in get_flashed_messages() %} {
{ message }} {%- endfor %}

返回主页

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

你可能感兴趣的文章
linux基础6-bash shell编程
查看>>
掌握这几种微服务模式助你成为更出色的工程师
查看>>
为什么很多语言选择在JVM上实现
查看>>
绘制dot 图
查看>>
CSS Reset CSS Framework
查看>>
如何用WinCC发送报警消息至微信
查看>>
LeetCode算法扫题系列19
查看>>
nginx获取经过层层代理后的客户端真实IP(使用正则匹配)
查看>>
YII实现dropDownList 联动事件
查看>>
搞定PHP面试 - 正则表达式知识点整理
查看>>
为什么JavaScript里面0.1+0.2 === 0.3是false
查看>>
freemarker 设置中文
查看>>
docker swarm集群搭建
查看>>
选择排序
查看>>
SQLAlchemy
查看>>
BZOJ 1303: [CQOI2009]中位数图 问题转化_扫描_思维
查看>>
SP1026 FAVDICE - Favorite Dice 数学期望
查看>>
NodeJS、NPM安装配置步骤(windows版本)
查看>>
js中字符串常用熟悉和方法
查看>>
【矩阵+十进制快速幂】[NOI2013]矩阵游戏
查看>>