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'))
复制代码

 

如果你感觉有收获,欢迎给我打赏 ———— 以激励我输出更多优质内容,联系QQ:2575404985
        
posted @   样子2018  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2022-03-30 Vue 之vue-resource拦截器使用
2022-03-30 Vue 之使用Base64
点击右上角即可分享
微信分享提示

目录导航

一、效果图
二、核心代码