用python写一个图书管理系统页面
时间: 2023-10-03 10:06:54 浏览: 103
好的,以下是一个基于Python Flask框架的简单图书管理系统页面示例代码:
```
from flask import Flask, render_template, request, redirect, url_for
app = Flask(__name__)
# 假设我们有一个存储图书的列表
books = [
{"id": 1, "title": "Python编程从入门到实践", "author": "Eric Matthes", "price": 59.80},
{"id": 2, "title": "Flask Web开发实战", "author": "李辉", "price": 79.00},
{"id": 3, "title": "数据结构与算法分析", "author": "Mark Allen Weiss", "price": 98.00},
{"id": 4, "title": "机器学习实战", "author": "Peter Harrington", "price": 69.00},
]
@app.route("/")
def index():
# 首页显示所有图书
return render_template("index.html", books=books)
@app.route("/add_book", methods=["GET", "POST"])
def add_book():
if request.method == "POST":
# 获取表单中的数据
title = request.form.get("title")
author = request.form.get("author")
price = request.form.get("price")
# 生成一个新的图书对象,并加入到列表中
new_book = {"id": len(books)+1, "title": title, "author": author, "price": price}
books.append(new_book)
# 添加成功后跳转回首页
return redirect(url_for("index"))
else:
# 显示添加图书的页面
return render_template("add_book.html")
@app.route("/edit_book/<int:id>", methods=["GET", "POST"])
def edit_book(id):
book = None
for b in books:
if b["id"] == id:
book = b
break
if request.method == "POST":
# 获取表单中的数据
title = request.form.get("title")
author = request.form.get("author")
price = request.form.get("price")
# 更新图书信息
book["title"] = title
book["author"] = author
book["price"] = price
# 更新成功后跳转回首页
return redirect(url_for("index"))
else:
# 显示编辑图书的页面
return render_template("edit_book.html", book=book)
@app.route("/delete_book/<int:id>")
def delete_book(id):
# 删除指定id的图书
for i in range(len(books)):
if books[i]["id"] == id:
del books[i]
break
# 删除成功后跳转回首页
return redirect(url_for("index"))
if __name__ == "__main__":
app.run(debug=True)
```
说明:
- 第1-3行导入需要的模块,其中`Flask`是一个Web框架,用于搭建Web应用。
- 第5-11行定义了一个存储图书信息的列表`books`,其中每个元素是一个字典,表示一本图书。
- 第13-18行定义了首页路由`/`,当用户访问首页时,会显示所有图书的信息。
- 第20-32行定义了添加图书路由`/add_book`,当用户访问该路由时,可以添加一本新的图书。
- 第34-53行定义了编辑图书路由`/edit_book/<int:id>`,当用户访问该路由时,可以编辑指定id的图书信息。
- 第55-61行定义了删除图书路由`/delete_book/<int:id>`,当用户访问该路由时,可以删除指定id的图书。
- 最后一行启动应用程序,`debug=True`表示开启调试模式。
阅读全文