• 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()
      
  • 相关阅读:
    Hive 函数 + Shell编程的具体实践与运用
    Java的MybatisPlus
    这道 SQL 题,你有不一样的解法吗?
    300行代码,教你用Python写个飞机大战
    仅20行代码,实现文件自动化上传。
    位运算算法
    摆脱五彩斑斓的黑,成为七彩程序员!
    项目管理学定律之墨菲定律——怕什么来什么?
    windows10/liunx创建空大文件
    vim处理冲突文件
  • 原文地址:https://www.cnblogs.com/donghaoblogs/p/10389691.html
Copyright © 2020-2023  润新知