Flask框架 之简单图书馆demo
一、效果图
二、核心代码
from flask import Blueprint, render_template, url_for, request, redirect from app import db from ..models import Author, Book home = Blueprint('home', __name__) from app.forms import AuthorBookForm @home.route("/", methods=["GET", "POST"]) def index(): author_book_form = AuthorBookForm() if request.method == 'POST': # 验证表单数据是否合格 if author_book_form.validate_on_submit(): author_name = author_book_form.author_name.data book_name = author_book_form.book_name.data author = Author.query.filter_by(name=author_name).first() if author is None: author = Author(name=author_name) db.session.add(author) db.session.commit() # 判断是否已经存在书籍 book = Book.query.filter_by(name=book_name).first() if book is None: book = Book(name=book_name, author_id=author.id) db.session.add(book) db.session.commit() return redirect(url_for('.index')) author = Author.query.all() print(author) return render_template("index.html", authors=author, form=author_book_form) @home.route("/delete_book") def delete_book(): book_id = request.args.get("book_id") book = Book.query.get(book_id) db.session.delete(book) db.session.commit() # 判断是否没有书籍了,删除作者 all_book = Book.query.filter_by(author_id=book.author_id).all() if len(all_book) == 0: author = Author.query.get(book.author_id) db.session.delete(author) db.session.commit() return redirect(url_for('.index'))