怎样用flask蓝图来实现增删改查呢?请看下面的内容

这是我们的目录结构

从图中可以看出每一个功能都有一个各自的文件夹

首先我们要自己先来创建一个数据,在Flask_data.py中写入如下内容:

STUDENT = [
{'id': 1, 'name': '萝卜忒', 'age': 38, 'gender': '男'},
{'id': 2, 'name': '齐欧能', 'age': 21, 'gender': '男'},
{'id': 3, 'name': '王玉萌', 'age': 24, 'gender': '女'},
{'id': 4, 'name': '王婕雨', 'age': 23, 'gender': '女'},
{'id': 5, 'name': '葛二蛋', 'age': 28, 'gender': '男'},
]

然后开始写每一个的功能,具体如下:

查找功能:

也就是显示功能,将Flask_data.py文件中的内容读取并显示出来

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>学生列表</title>
</head>
<body>
<table border="3xp">
<thead>
<tr>
<td>ID</td>
<td>name</td>
<td>age</td>
<td>gender</td>
<td>options</td>
</tr>
</thead>
<tbody>
{% for foo in student %}
<tr>
<td>{{ foo.id }}</td>
<td>{{ foo["name"] }}</td>
<td>{{ foo.get("age") }}</td>
<td>{{ foo.gender }}</td>
<td> <a href="/update/{{ foo.id }}">修改</a> | <a href="/flask_del/{{ foo.id }}">删除</a> </td>
</tr>
{% endfor %}
</tbody>
</table>
<a href="/add"> 添加学生 </a>
</body>
</html>

select.html

from flask import Blueprint, render_template
from Flask_data import STUDENT select_list = Blueprint("select_list", __name__, template_folder="temp", static_folder="static") @select_list.route("/select_list")
def select():
return render_template("select.html", student=STUDENT)

select.py

添加功能:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>学生列表</title>
</head>
<body>
<form method="post">
ID:<input type="text" name="id"> <br>
姓名:<input type="text" name="name"><br>
年龄:<input type="text" name="age"><br>
性别:<input type="text" name="gender"><br>
<input type="submit" value="添加学生">
</form> </body>
</html>

add.html

from flask import Blueprint,redirect,request,render_template
from Flask_data import STUDENT add = Blueprint("add", __name__, template_folder="temp", static_folder="static") # type:Blueprint @add.route("/add",methods=["GET","POST"])
def add_view():
if request.method == "POST":
stu_dic = {
"id": request.form["id"],
"name": request.form["name"],
"age": request.form["age"],
"gender": request.form["gender"]
} STUDENT.append(stu_dic) return redirect("/select_list") return render_template("add.html")

add.py

修改功能:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>学生列表</title>
</head>
<body>
<form method="post">
<input type="text" name="id" hidden value="{{ student.id }}"><br>
姓名:<input type="text" name="name" value="{{ student.name }}"><br>
年龄:<input type="text" name="age" value="{{ student.age }}"><br>
性别:<input type="text" name="gender" value="{{ student.gender }}"><br>
<input type="submit" value="修改信息">
</form> </body>
</html>

update.html

from flask import Blueprint, render_template, redirect, request
from Flask_data import STUDENT update = Blueprint("update", __name__, template_folder="temp", static_folder="static") @update.route("/update/<int:nid>",methods=["GET","POST"])
def update_view(nid):
if request.method == "POST":
stu_id = int(request.form["id"])
stu_dic = {
"id": stu_id,
"name": request.form["name"],
"age": request.form["age"],
"gender": request.form["gender"]
} for index,stu in enumerate(STUDENT):
if stu["id"] == stu_id:
STUDENT[index] = stu_dic return redirect("/select") for stu in STUDENT:
if stu["id"] == nid :
return render_template("update.html", student=stu) return render_template("update.html", student="")

update.py

删除功能:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>学生列表</title>
</head>
<body>
<table border="3xp">
<thead>
<tr>
<td>ID</td>
<td>name</td>
<td>age</td>
<td>gender</td>
<td>options</td>
</tr>
</thead>
<tbody>
{% for foo in student %}
<tr>
<td>{{ foo.id }}</td>
<td>{{ foo["name"] }}</td>
<td>{{ foo.get("age") }}</td>
<td>{{ foo.gender }}</td>
<td> <a href="/update/{{ foo.id }}">修改</a> | <a href="/flask_del/{{ foo.id }}">删除</a> </td>
</tr>
{% endfor %}
</tbody>
</table>
<a href="/add"> 添加学生 </a>
</body>
</html>

del.html

from flask import Blueprint, redirect, request, render_template
from Flask_data import STUDENT flask_del = Blueprint("flask_del", __name__, template_folder="temp", static_folder="static") # type:Blueprint @flask_del.route("/flask_del/<int:nid>",methods=["GET","POST"])
def flask_delapp(nid):
STUDENT1 = []
for stu in STUDENT:
if stu["id"] == nid:
pass
else:
STUDENT1.append(stu)
return render_template("select.html", student=STUDENT1)

flask_del.py

各个功能写完后就要写主要启动文件了,我们在manager.py文件中写入启动内容:

from flask import Flask
from Flask_select import select
from Flask_add import add
from Flask_update import update
from Flask_del import flask_del def flask_app():
app = Flask(__name__)
app.register_blueprint(select.select_list)
app.register_blueprint(add.add)
app.register_blueprint(update.update)
app.register_blueprint(flask_del.flask_del) return app flask_app().run()

manager.py

运行manager.py文件就行了,谢谢

Flask蓝图的增删改查的更多相关文章

  1. 前端web通过flask操作数据库-增删改查

    后端python代码: #coding:utf8 from flask import Flask,request,render_template import pymysql as mysql imp ...

  2. flask操作(增删改查操作)

    增加数据 from .models import Goods from app.extensions import db goods1 = Goods(name='魅族18s', price=3400 ...

  3. 通过flask实现web页面简单的增删改查bootstrap美化版

    通过flask实现web页面简单的增删改查bootstrap美化版 项目目录结构 [root@node1 python]# tree -L 2 . ├── animate.css ├── fileut ...

  4. 通过flask实现web页面简单的增删改查

    通过flask实现web页面简单的增删改查 # 1.后台程序falsk_web01.py #coding:utf-8 from flask import Flask,render_template,r ...

  5. [py]flask从0到1-模板/增删改查

    flask知识点 1.后端渲染html到前端 render_template 2.后端获取前端数据 request.args.get 3.前端获取后端数据 模板 4.警示消息 flash {{ get ...

  6. Flask一种通用视图,增删改查RESTful API的设计

    模型设计是后端开发的第一步.数据模型反映了各种对象之间的相互关系. from app import db class Role(db.Model): """角色" ...

  7. day94:flask:Jinjia2模板引擎&flask中的CSRF攻击&Flask-SQLAlchemy的创建模型类和基本的增删改查

    目录 1.Jinjia2模板引擎 1.Jinjia2加载模板并传递数据到模板中 2.Jinjia2的模板语句 3.模板中特有的变量和函数 4.模板中内置的过滤器 5.自定义过滤器 6.模板继承 2.在 ...

  8. python 10min系列之实现增删改查系统

    woniu-cmdb 奇技淫巧--写配置文件生成增删改查系统 视频教程 项目主页跪求github给个star, 线上demo,此页面都是一个配置文件自动生成的 详细的文章介绍和实现原理分析会发布在我的 ...

  9. Hibernate第一个程序(最基础的增删改查) --Hibernate

    本例实现Hibernate的第一个程序,Hibernate的优点我想大家都很清楚,在这里不做过多赘述.总之,使用Hibernate对数据库操作,也就是来操作实体对象的! 项目目录: 一.第一步要做的就 ...

随机推荐

  1. Unity添加自定义快捷键——UGUI快捷键

    在Editor下监听按键有以下几种方式: 自定义菜单栏功能: using UnityEngine; using UnityEditor; public static class MyMenuComma ...

  2. eclipse 远程操作HIVE

    首先启动HiveServer hive --service hiveserver 10000 & 创建工程 引入包: 代码(简单的查询): package com.hive.jdbc; imp ...

  3. Python学习——输入和输出

    (转自:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014316434841 ...

  4. HN669打包工具--游戏对接

    一. 将游戏工程拖入到工具的HN669Ploy目录下,如下图: 二. xCode打开游戏工程,将Core目录下的HN669SDKCore工程添加入游戏工程,并引用库,如图:   三.调用API 1.A ...

  5. 没有定义json_encode()函数。

    php5是没有json扩展的,需要自行下载. 命令php -m 可以查看安装了哪些扩展. 1.修改php.ini 在php.ini 中加入 extension=json.so:sudo vi /etc ...

  6. LOJ6235 区间素数个数(min_25筛)

    题目链接:LOJ 题目大意:看到题目名字应该都知道是啥了吧. $1\le N\le 10^{11}$. 阉割版 min_25 筛.发现答案实际上就是 min_25 筛中 $g(N,pl)$ 的值.(取 ...

  7. cf785D(组合数学)

    题目链接: http://codeforces.com/problemset/problem/785/D 题意: 左边全为 '(' 右边全为 ')' 且两者数量想等的字符串称为 RSBS. 给出一个由 ...

  8. PCB生产企业自动化立体仓库/智能仓库库系统WMS/WCS解决方案

    PCB生产企业自动化立体仓库/智能仓库库系统WMS/WCS解决方案 自动化立体仓库智能仓储系统WMS/WCS重要性调查 调查1(物流成本占总生产成本比例数据)1979年英国的第一次调查表明,在从原材料 ...

  9. flask数据操纵

    Flask ORM 在Django框架中内部已经提供ORM这样的框架,来实现对象关系映射,方便我们操作数据库.如果想在Flask中也达到这样效果,需要安装一个第三方来支持. SQLAlchemy是一个 ...

  10. AT2341 Increasing Numbers

    传送门 还是猜结论呢 然后我们就想我们可以每次去掉尽量多的位数来保证次数最小,假装这是对的,先写一发,A了 考虑如何去掉尽量多的位数,我们可以找到最大的几位的不下降序列,把最后一个-1,后面全部改成9 ...