美文网首页
图书管理

图书管理

作者: 菜田的守望者w | 来源:发表于2018-12-09 21:28 被阅读0次

    from flask import Flask, render_template,request,flash

    from flask_sqlalchemy import SQLAlchemy

    from flask_wtf import FlaskForm

    from wtforms import SubmitField,StringField

    from wtforms.validators import DataRequired

    app = Flask(__name__)

    # 数据库配置:数据库地址/关闭自动跟踪修改

    app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://wan:mysql@127.0.0.1/flask_sql_demo'

    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

    app.secret_key='caitianseshouwangzhe'

    # 创建数据库对象

    db = SQLAlchemy(app)

    """

    1、配置数据库

      a.导入SQLAlchemy

      b.创建db对象,并配置参数

      c.终端创建数据库

    2. 添加书和作者模型

      a.模型继承db.Model

      b.__tablename__表名

      c.db.Colum字段

      d.relationship关系引用

    3.添加数据

    4,使用模板显示数据库查询的数据

        a.查询所有作者信息,让信息传递给模板

        b.模板中中按照格式,依次for循环作者和书籍即可(作者获取书籍,用的是关系引用)

    5.使用WTF显示表单

    6,实现相关的增删逻辑

    """

    # 定义书和作者模型

    # 作者模型

    class Author(db.Model):

        # 表名

        __tablename__ = 'authors'

        id=db.Column(db.Integer, primary_key=True)

        name = db.Column(db.String(16), unique=True)

        # 关系引用

        book = db.relationship('Book',backref='author')

        def __repr__(self):

            return "Author:%s" % self.name

    # 书籍类型

    class Book(db.Model):

        __tablename__ = 'books'

        id = db.Column(db.Integer, primary_key=True)

        name = db.Column(db.String(16), unique=True)

        author_id = db.Column(db.Integer, db.ForeignKey('authors.id'))

        def __repr__(self):

            return 'Book:%s %s' % (self.name, self.author_id)

    # 自定义表单

    class LoginForm(FlaskForm):

        author = StringField('作者:',validators=[DataRequired()])

        book = StringField('书籍:',validators=[DataRequired()])

        submit = SubmitField('提交')

    @app.route('/')

    def hello_world():

        # 创建自定义表单类

        author_form = LoginForm()

        # 查询所有作者信息,让信息传递给模板

        if author_form.validate_on_submit():

            # 验证通过获取数据

            author_name = author_form.author.name

            bllk_name = author_form.book.name

            # 判断作者是否存在

            author = Author.query.filter_by(name=author_name).first()

            # 如果作者存在

            if author:

                pass

            else:

                # 如果作者不存在,添加作者和书籍

                pass

        else:

            if request.method == 'POST':

                flash('参数不全')

        author = Author.query.all()

        return render_template('books.html',author=author,author_form=author_form)

    if __name__ == '__main__':

        db.drop_all()

        db.create_all()

        # 生成数据

        au1 = Author(name='黑柳彻子')

        au2 = Author(name='杨红樱')

        au3 = Author(name='尾田荣一郎')

        au4 = Author(name='莫言')

        au5 = Author(name='梁漱溟')

        au6 = Author(name='鲁迅')

        au7 = Author(name='路遥')

        db.session.add_all(au1,au2,au3,au4,au5,au6,au7)

        # 提交会话

        db.session.commit()

        bk1 = Book(name='窗边的小豆豆',author_id=au1.id)

        bk2 = Book(name='淘气包马小跳',author_id=au2.id)

        bk3 = Book(name='海贼王',author_id=au3)

        bk4 = Book(name='蛙',author_id=au4)

        bk5 = Book(name='我生有涯愿无尽',author_id=au5)

        bk6 = Book(name='我的藤野先生',author_id=au6)

        bk7 = Book(name='平凡的世界',author_id=au7)

        db.session.add_all([bk1,bk2,bk3,bk4,bk5,bk6,bk7])

        db.session.commit()

        app.run()

    相关文章

      网友评论

          本文标题:图书管理

          本文链接:https://www.haomeiwen.com/subject/uczkhqtx.html