后端的读写
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. java操作redis集群配置[可配置密码]和工具类(比较好用)

    转: java操作redis集群配置[可配置密码]和工具类 java操作redis集群配置[可配置密码]和工具类     <dependency>   <groupId>red ...

  2. css的简单学习笔记

    1.CSS的简介 *css :层叠样式表 **层叠: 一层一层. **样式表: 具有大量的属性和属性值 *使得页面的显示效果更加好. *css将网页内容和显示样式进行分离,提高了显示功能. *css不 ...

  3. #ifndef HeaderName_h #define HeaderName_h #endif 使用详解(转)

    原文:#ifndef HeaderName_h #define HeaderName_h #endif 使用详解 想必很多人都看到过头文件中写有:#ifndef HeaderName_h       ...

  4. 3 字节的 UTF-8 序列的字节 2 无效

    由于目前写完了[消息队列]模块,想做个单元测试,所以就利用spring的import标签,将mq的配置文件加入了配置.结果出现了<3 字节的 UTF-8 序列的字节 2 无效>这个问题. ...

  5. Gym 101911E "Painting the Fence"(线段树区间更新+双端队列)

    传送门 题意: 庭院中有 n 个围栏,每个围栏上都被涂上了不同的颜色(数字表示): 有 m 条指令,每条指令给出一个整数 x ,你要做的就是将区间[ x第一次出现的位置 , x最后出现的位置 ]中的围 ...

  6. echarts柱状图 渐变色

    效果图:  var xAxisData = []; var data = []; for (var i = 9; i < 16; i++) { xAxisData.push('5月' + i + ...

  7. pageObject学习

    1.java代码层面的pageObject实现 参考:https://www.cnblogs.com/yytesting/p/6973474.html 是用java写的实例,优点是结构很清晰,缺点是p ...

  8. Transactional 事务

    1.事务场景中,抛出异常被catch后,如果需要回滚,一定要手动回滚 其实像第一种try catch这种把整个包裹起来,这种业务方法也就等于脱离了spring事务的管理,因为没有任何异常会从业务方法中 ...

  9. fiddler模拟返回

    先把正常的请求响应报文保存为文件,操作方法为选中对应请求>右键> save >reponse>entire response 点击改请求,点击右侧autoresponder,点 ...

  10. jmeter每10个停一会实现方案

    foreach控制器中加个if控制器,if控制器条件${__groovy("${__counter(TRUE,)}".toInteger() % 10 == 0,)},再往if控制 ...