• Flask-SQLAlchemy插件


    一,初始化

    两种方式:

    db = SQLAlchemy()
    def create_app():
        app = Flask(__name__)
        db.init_app(app)
        return app
    app = Flask(__name__)
    db = SQLAlchemy(app)

    二,配置填写

    SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:root@127.0.0.1/firstsqlalchemy"

    三,使用

    • ORM类:之前都是通过Base = declarative_base()来初始化一个基类,然后再继承,在Flask-SQLAlchemy中更加简单了(代码依赖以上示例):

      class User(db.Model):
        id = db.Column(db.Integer,primary_key=True)
        username = db.Column(db.String(80),unique=True)
        email = db.Column(db.String(120),unique=True)
        def __init__(self,username,email):
            self.username = username
            self.email = email
        def __repr__(self):
            return '<User %s>' % self.username
      
    • 映射模型到数据库表:使用Flask-SQLAlchemy所有的类都是继承自db.Model,并且所有的Column和数据类型也都成为db的一个属性。但是有个好处是不用写表名了,Flask-SQLAlchemy会自动将类名小写化,然后映射成表名。
      写完类模型后,要将模型映射到数据库的表中,使用以下代码创建所有的表:

      db.create_all()
      
    • 添加数据:这时候就可以在数据库中看到已经生成了一个user表了。接下来添加数据到表中:

      admin = User('admin','admin@example.com')
      guest = User('guest','guest@example.com')
      db.session.add(admin)
      db.session.add(guest)
      db.session.commit()
      

      添加数据和之前的没有区别,只是session成为了一个db的属性。

    • 查询数据:查询数据不再是之前的session.query了,而是将query属性放在了db.Model上,所以查询就是通过Model.query的方式进行查询了:

      users = User.query.all()
      # 再如:
      admin = User.query.filter_by(username='admin').first()
      # 或者:
      admin = User.query.filter(User.username='admin').first()
      
    • 删除数据:删除数据跟添加数据类似,只不过sessiondb的一个属性而已:

      db.session.delete(admin)
      db.session.commit()
      
  • 相关阅读:
    小程序学习资料
    tomcat单应用多实例部署报错 应用jar不存在
    nginx windows版本 1024限制
    mysql连接数
    rocketmq
    nginx路径匹配
    war包的压缩解压缩
    IIS访问HTTP Error 400. The request hostname is invalid
    Microsoft 安全扫描程序
    vscode
  • 原文地址:https://www.cnblogs.com/donghaoblogs/p/10389691.html
Copyright © 2020-2023  润新知