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()