美文网首页
flask-sqlalchemy笔记

flask-sqlalchemy笔记

作者: 宽哥好 | 来源:发表于2019-11-26 11:20 被阅读0次

    flask_sqlalchemy笔记

    安装

    可通过 pip安装:

    pip install flask-sqlalchemy
    

    数据库连接

    1. 跟 sqlalchemy 一样,定义好数据库连接字符串 DB_URI。

    2. 将这个数据库连接字符串 DB_URI,通过SQLALCHEMY_DATABASE_URI键 添加到 app.config中。示例如下:

    app.config['SQLALCHEMY_DATABASE_URI'] = DB_URI
    
    1. 使用flask_sqlalchemy.SQLAlchemy这个类,传入 app 创建 数据库对象,示例如下:
    db = SQLAlchemy(app)
    

    创建 ORM 模型

    大致步骤和 sqlalchemy 中创建orm模型一致,只不过 基类 变为了 db.Model,数据类型都可以从db下直接获得,不用再去导入了,示例如下:

    # 定义 orm 模型
    class User(db.Model):
        __tablename__ = 'user'  # 表名
        # 字段
        id = db.Column(db.Integer, primary_key=True, autoincrement=True)
        name = db.Column(db.String(50), nullable=False)
    
    
    class Article(db.Model):
        __tablename__ = 'article'
        id = db.Column(db.Integer, primary_key=True, autoincrement=True)
        title = db.Column(db.String(50), nullable=False)
        content = db.Column(db.Text, nullable=False)
        uid = db.Column(db.Integer, db.ForeignKey('user.id'))  # 外键
    
        author = db.relationship('User', backref='articles')
    
    • 在定义模型的时候,如果不指定类属性__tablename__,那么在映射的时候会讲模型名字的小写形式作为表的名字,如果在定义名字的时候采用驼峰的形式那么表名用连字符_连接,比如模型名为AllUser,那么表名就为:all_user,如果指定了该属性,那么表的名字就为指定的值。

    将 ORM 模型映射到数据库

    • 使用db.drop_all()可以删除数据库中定义的orm模型有关的表
    • 使用db.create_all()可以创建定义orm模型有关的表

    使用 session

    通过 db.session来使用session对象,操作和在sqlalchemy中一样。

    查询数据:

    如果只查询一个模型上的数据,可以使用模型.query的方式查询,也可以使用db.session.query()来查询。查询方式和sqlalchemy中的query使用方式一样。
    例如查询上面创建对象的数据可以通过下面的例子:

    # 查询数据
    users = User.query.all()  # 等同于 db.session.query(User).all()
    # users = db.session.query(User).all() 
    

    相关文章

      网友评论

          本文标题:flask-sqlalchemy笔记

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