Flask-SQLAlchemy是对SQLAlchemy进行了一个简单的封装,使得我们在flask中使用sqlalchemy更加的简单。可以通过pip install flask-sqlalchemy
1.映射到数据库
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
hostname='127.0.0.1'
port='3306'
username='root'
password='zsrt0760'
database='mytest'
DB_URL='mysql+pymysql://{}:{}@{}:{}/{}'.format(username,password,hostname,port,database)
app=Flask(__name__)
#映射到数据库
app.config['SQLALCHEMY_DATABASE_URI']=DB_URL
app.config['SQLALCHEMY_TRACK_MODIFICATIONS']=False
db=SQLAlchemy(app)
2.数据库初始化:数据库初始化不再是通过create_engine
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = DB_URI
db = SQLAlchemy(app)
3.ORM类:之前都是通过Base = declarative_base()来初始化一个基类,然后再继承,在Flask-SQLAlchemy中更加简单了直接db.Model
class User(db.Model):
__tablename__='user'
id=db.Column(db.Integer,primary_key=True,autoincrement=True)
name=db.Column(db.String(50))
def __repr__(self):
return 'User:%s'%self.name
class Artcle(db.Model):
__tablename='artcle'
id=db.Column(db.Integer,primary_key=True,autoincrement=True)
title=db.Column(db.String(50))
uid=db.Column(db.Integer,db.ForeignKey('user.id'))
author=db.relationship('User',backref='artcles')
4.•要将模型映射到数据库的表中,使用以下代码创建所有的表:
db.create_all()
5.添加数据
user=User(name='dahong')
artcle=Artcle(title='python')
#表间产生关联
artcle.author=user
db.session.add(user)
db.session.add(artcle)
db.session.commit()
6.查询数据
查询数据不再是之前的session.query了,而是将query属性放在了db.Model上,所以查询就是通过Model.query的方式进行查询了
data=User.query.all()
7.删除数据
一般设计数据库都不会真的删除数据,而是用标识做标记,不会采用如下方法,这里只做简单介绍
data=User.query.filter(name='dahong').all()
db.session.delete(data)
db.session.commit()