Flask-SQLAlchemy 是一个flask 扩展,简化了在Flask 程序中使用 SQLAlchemy 的操作,SQLAlchemy 是一个很强大的关系型数据库框架,支持多种数据库后台。
安装Flask-SQLAlchemy:pip install Flask-sqlalchemy。
初始化:
from flask_sqlalchemy import SQLAlchemy app=Flask(__name__) db=SQLAlchemy(app)
设置配置信息,一般设置在config.py文件中(DATABASE为数据库名称,USERNAME为用户名,PASSWORD为密码):
import os DEBUG=True SECRET_KEY=os.urandom(24) HOSTNAME='127.0.0.1' PORT='3306' DATABASE='sql_name' USERNAME='root' PASSWORD='12345678' DB_URI='mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(USERNAME,PASSWORD,HOSTNAME,PORT,DATABASE) SQLALCHEMY_DATABASE_URI=DB_URI SQLALCHEMY_TRACK_MODIFICATIONS=False
主app文件中加入配置文件:
app=Flask(__name__) app.config.from_object(config) db=SQLAlchemy(app)
测试:
db.create_all()
创建模型与表的映射(id为主键并且自增长):
class User(db.Model): __username__="user" id=db.Column(db.Integer,primary_key=True,autoincrement=True) telephone=db.Column(db.String(11),nullable=False) username=db.Column(db.String(50),nullable=False) password=db.Column(db.String(100),nullable=False)
增加数据:
user=User(telephone='18200000000',username='li',password='111111') db.session.add(user) #做事务的提交 db.session.commit()
查找数据:
User.query.filter(User.telephone=='18200000000',User.username=='li',User.password=='111111')
修改数据:
#先查找出需要修改的数据 user=User.query.filter(User.telephone=='18200000000',User.username=='li',User.password=='111111') #修改数据 user.username='zhou' #做事务的提交 db.session.commit()
删除数据:
#先查找出需要修改的数据 user=User.query.filter(User.telephone=='18200000000',User.username=='li',User.password=='111111').first() #删除数据 db.session.delete(user) #做事务的提交 db.session.commit()