后端的读写
from flask import Flask,render_template,request
from flask_sqlalchemy import SQLAlchemy
#导入时间模块
import datetime
#建立对象
app = Flask(__name__)
#载入配置文件
app.config.from_pyfile('config.ini')
#建立数据库对象
db = SQLAlchemy(app)
#建立数据库类
class Book(db.Model):
#创建表明
__tablename__ = 'book'
#主键
id = db.Column(db.Integer,primary_key=True)
#书名
title = db.Column(db.String(200))
#作者
author = db.Column(db.String(200))
#简介
desc = db.Column(db.Text)
#上传时间
datetime = db.Column(db.DateTime)
@app.route("/")
def index():
#通过request模块来判断请求方式
return render_template('day7_index.html')
@app.route("/book",methods=["GET","POST"])
def booklist():
#通过request模块来判断请求方式
if request.method == "POST":
type = request.form.get("type")
#判断type如果是add就是入库逻辑
if type == "add":
#接收表单提交过来的数据,通过form属性调用
title = request.form.get("title")
author = request.form.get("author")
desc = request.form.get("desc")
#进行入库操作
book = Book(title=title,author=author,desc=desc,datetime=datetime.datetime.now())
#调用add方法入库
db.session.add(book)
#如果type值是del,那就是删除逻辑
elif type=="del":
#使用delete方法删除数据
print("删除的id是%s" % request.form.get("id"))
Book.query.filter_by(id=request.form.get("id")).delete()
#如果type值为edit,那就是修改的逻辑
elif type == "edit":
#使用update方法修改数据
print("修改的id是%s" % request.form.get("id"))
#将title值修改,修改的是传递过来的title参数
Book.query.filter_by(id=request.form.get("id")).update(
{'title':request.form.get("title"),
'author':request.form.get("author"),
'desc':request.form.get("desc"),
'datetime':datetime.datetime.now()
})
books = Book.query.all()
return render_template('day7_booklist.html',books=books)
if __name__ == "__main__":
app.run()
 
中间添加个跳转的页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>图书管首页</title>
</head>
<body>
<h1>欢迎您的光临</h1>
<br /><br />
 
<a href="/book">图书管理页面</a>
 
</body>
</html>
 
 
 
要展示的页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>图书列表页</title>
<style>
 
table{
border: gold 2px solid;
padding: 10px;
font-size: 16px;
color: brown;
 
}
 
</style>
</head>
<body>
<center>
<table>
<tr>
<td>编号</td> <td>书名</td><td>作者</td>
<td>简介</td>
<td>入库时间</td>
<td>操作</td>
</tr>
{% for item in books%}
<form method="POST">
<tr>
<td>{{ item.id }}</td>
<td><input type="text" name="title" value="{{item.title }}" /></td>
<td>{{ item.author }}</td>
<td><input type="text" name="author" value="{{item.author}}" /></td>
<td>{{ item.desc }}</td>
<td><input type="text" name="desc" value="{{item.desc}}" /></td>
<td>{{ item.datetime }}</td>
<td>
{# 加入隐藏域 用来传递参数 #}
<input type="hidden" name="type" value="edit" />
<input type="hidden" name="id" value="{{ item.id }}"/>
<input type="submit" value="确认修改" />
</form>
{# 加入判断逻辑 ,再提交之前确认一下 #}
<form method="POST" onsubmit="return(confirm('你确认要删除吗?'))">
{# 使用隐藏域来传递参数 #}
<input type="hidden" name="type" value="del" />
<input type="hidden" name="id" value="{{ item.id}}" />
<input type="submit" value="删除图书" />
</form>
</td>
</tr>
{% endfor %}
</table>
<br />
{# 录入图书表单 #}
<form method="POST">
<input type="hidden" name="type" value="add" />
<label>书名</label>
<input type="yexy" name="title" placeholder="请输入书名" />
<br />
<label>作者</label>
<input type="text" name="author" placeholder="情书入作者">
<br />
<label>简介</label>
<textarea name="desc"></textarea>
<br />
<input type="submit" value="提交">
</form>
</center>
</body>
</html>

Flask图书管管理表的更多相关文章

  1. Oracle_创建和管理表

    创建和管理表 常见的数据库对象 Oracle 数据库中的表 查询数据字典 命名规则 CREATE TABLE 语句 数据类型 使用子查询创建表 ALTER TABLE 语句 删除表 清空表 改变对象的 ...

  2. 管理表空间和数据文件<六>

    数据库管理 -- 管理表空间和数据文件  介绍 表空间是数据库的逻辑组成部分.从物理上讲,数据库数据存放在数据文件中:从逻辑上讲,数据库则是存放在表空间中,表 空间由一个或多个数据文件组成. 数据库 ...

  3. Oracle本地管理对照数据字典管理表空间

    Locally vs. Dictionary Managed Tablespaces 整理自:http://www.orafaq.com/node/3. When Oracleallocates sp ...

  4. 十四、oracle 数据库管理--管理表空间和数据文件

    一.概念表空间是数据库的逻辑组成部分.从物理上讲,数据库数据存放在数据文件中:从逻辑上讲,数据库数据则是存放在表空间中,表空间由一个或多个数据文件组成. 二.数据库的逻辑结构oracle中逻辑结构包括 ...

  5. oracle 数据库管理--管理表空间和数据文件

    一.概念表空间是数据库的逻辑组成部分.从物理上讲,数据库数据存放在数据文件中:从逻辑上讲,数据库数据则是存放在表空间中,表空间由一个或多个数据文件组成. 二.数据库的逻辑结构oracle中逻辑结构包括 ...

  6. Oracle02——oracle分页、子查询、集合运算、处理数据、创建和管理表和其他数据库对象

    作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7289451.html --oracle分页(Pageing Query) select ...

  7. Hive管理表分区的创建,数据导入,分区的删除操作

    Hive分区和传统数据库的分区的异同: 分区技术是处理大型数据集经常用到的方法.在Oracle中,分区表中的每个分区是一个独立的segment段对象,有多少个分区,就存在多少个相应的数据库对象.而在P ...

  8. Hive管理表,外部表及外部分区表的深入探讨

    Hive管理表,也叫内部表.Hive控制着管理表的整个生命周期,默认情况下Hive管理表的数据存放在hive的主目录:/user/hive/warehouse/下,并且当我们删除一张表时,这张表的数据 ...

  9. flask用宏渲染表单模板时,表单提交后,如果form.validate_on_submit()返回的是false的可能原因

    flask用宏渲染表单模板时,表单提交后,提交的内容符合DataRequired()校验, 但是form.validate_on_submit()返回的是False, 原因可能是表单模板中的<f ...

随机推荐

  1. 原生JS实现jquery的ready

    function ready(fn){ if(document.addEventListener){ //标准浏览器 document.addEventListener('DOMContentLoad ...

  2. A*搜索算法

    先了解一下什么是A*算法. A*搜寻算法,俗称A星算法.A*算法是用于寻找两点之间的最短路径,同时它也是一种静态路网中求解最短路最有效的直搜索方法.这是一种在图形平面上,有多个节点的路径,求出最低通过 ...

  3. go的net/rpc用法

    一:PRC是什么? RPC(Remote Procedure Call) 远程过程调用,是一个计算通信协议.该协议允许一台计算机上的程序调用另外一台计算机上的程序.远程过程调用就是2个不在同一台计算机 ...

  4. tcpdump高级过滤

    一:查看帮助选项 tcpdump --help Usage: tcpdump [-aAbdDefhHIJKlLnNOpqStuUvxX#] [ -B size ] [ -c count ] [ -C ...

  5. 转:值得收藏!那些鲜为人知的 Mac OS X 技巧

    看到一篇网友整理的比较好的“那些鲜为人知的 Mac OS X 技巧”,转载过来分享给大家!希望能有帮助. 更多专题,可关注小编[磨人的小妖精],查看我的文章,也可上[风云社区 SCOEE],查找和下载 ...

  6. python自动化开发-[第二十五天]-scrapy进阶与flask使用

    今日内容概要 1.cookie操作 2.pipeline 3.中间件 4.扩展 5.自定义命令 6.scrapy-redis 7.flask使用 - 路由系统 - 视图 - 模版 - message( ...

  7. Python继承扩展内置类

    继承最有趣的应用是给内置类添加功能,在之前的Contact类中,我们将联系人添加到所有联系人的列表里,如果想通过名字来搜索,那么就可以在Contact类添加一个方法用于搜索,但是这种方法实际上属于列表 ...

  8. JavaEE正常开发怎么做

    如果不使用第三方框架,用JavaEE的内容怎么去开发呢? 例如这里有一个需求: 最传统的方案如下:

  9. 图论分支-Tarjan初步-边双联通分量

    本来应该先说强连通分量,但是有一定的分配,所以这个在下一篇博客将会见到. 这个本想连点连通分量一起讲,但是量有点大,所以我就分两步讲. 我们先看定义 再来看看图解 很容易就能发现,只要将割边断掉,然后 ...

  10. @JsonIgnore注解可以实现不返回前端字段

    import com.fasterxml.jackson.annotation.JsonIgnore; /** * 密码 */ @JsonIgnore private String password;