flask SQLAlchemy插件

我们之前学习了SQLAlchemy的用法,但是最终我们还需要把SQLAlchemy运用到flask中,这时候我们就需要用到flask的SQLAlchemy插件Flask-SQLAlchemy,Flask-SQLAlchemy是对SQLAlchemy进行了一个简单的封装,使得我们在flask中使用sqlalchemy更加的简单。可以通过pip install flask-sqlalchemy。

使用

数据库初始化:数据库初始化不再是通过create_engine

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

HOSTNAME = '127.0.0.1'
DATABASE = 'demo0422'
PORT = 3306
USERNAME = 'root'
PASSWORD = 'root'

DB_URL = 'mysql+mysqlconnector://{}:{}@{}:{}/{}?charset=utf8'.format(USERNAME, PASSWORD, HOSTNAME, PORT, DATABASE)

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = DB_URI
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

db = SQLAlchemy(app)

ORM类:之前都是通过Base = declarative_base()来初始化一个基类,然后再继承,在Flask-SQLAlchemy中更加简单了,我们通过继承db.Model的类即可

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 __repr__(self):
      return f'User {self.username}'  

映射模型到数据库表:使用Flask-SQLAlchemy所有的类都是继承自db.Model,并且所有的Column和数据类型也都成为db的一个属性。但是有个好处是不用写表名了,Flask-SQLAlchemy会自动将类名小写化,然后映射成表名。当然如果我们想自己取个表面也同样还可以使用__tablename__=的方法

写完类模型后,要将模型映射到数据库的表中,使用以下代码创建所有的表

db.create_all()

添加数据:这时候就可以在数据库中看到已经生成了一个user表了。

user1 = User('admin','xxxx@qq.com')
user2 = User('guest','xxx@qq.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()

删除数据:删除数据跟添加数据类似,只不过session是db的一个属性而已:

db.session.delete(user2)
db.session.commit()
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值