zoukankan      html  css  js  c++  java
  • 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()
      
  • 相关阅读:
    【HDU
    【HDU
    【AtCoder
    【POJ
    Apache、Nginx、IIS日志记录分析&详解
    在Windows Server 2008 R2上安装IIS
    SQL 注入漏洞研究
    利用Nginx实现反向代理web服务器(Linux+Nginx+Mysql+PHP)
    CentOS 7 LAMP搭建并且部署sqli-labs
    Kali 下配置Nessus-2020年3月新版
  • 原文地址:https://www.cnblogs.com/donghaoblogs/p/10389691.html
Copyright © 2011-2022 走看看