Flask图书管管理表

后端的读写
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>

猜你喜欢

转载自www.cnblogs.com/antique/p/10185689.html