Flask使用MySql数据库
程序员文章站
2022-04-28 09:21:52
1.安装Flask SQLAlchemy,pymyql驱动 2.使用Flask SQLAlchemy Flask SQLAlchemy数据库URL 常用的数据库引擎: 数据库引擎 | URL | MySql | mysql+pymysql://username:password@host/datab ......
1.安装Flask-SQLAlchemy,pymyql驱动
pip install flask-sqlalchemy pip intall pymysql
2.使用Flask-SQLAlchemy
Flask-SQLAlchemy数据库URL
常用的数据库引擎:
数据库引擎 | URL
---|---
MySql | mysql+pymysql://username:password@host/database
Postgres | postgresql://username:password@host/database
#导入模块 from flask_sqlalchemy import SQLAlchemy import pymysql #创建flask对象 app = Flask(__name__) #配置flask配置对象中键:SQLALCHEMY_DATABASE_URI app.config['SQLALCHEMY_DATABASE_URI'] = "mysql+mysql://username:password@hostname/database" #配置flask配置对象中键:SQLALCHEMY_COMMIT_TEARDOWN,设置为True,应用会自动在每次请求结束后提交数据库中变动 app.config['SQLALCHEMY_COMMIT_TEARDOWN'] = Ture app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True #获取SQLAlchemy实例对象,接下来就可以使用对象调用数据 db = SQLAlchemy(app)
3.sqlalchemy列常见参数
选择项 | 说明 |
---|---|
autoincrement | True 是否自增 |
primary_key | True 是否是主键 |
indexE | TRUE 是否是索引 |
unique | True 是否是唯一 |
nullable | True 是否允许字段为空 |
default | 默认值 |
4.字段类型
类型名称 | python类型 | 描述 |
---|---|---|
Integer | int | 常规整型,通常为32位 |
SmallInteger | int | 短整型,通常为16位 |
BigInteger | int或long | 精度不受限整型 |
Float | float | 浮点型 |
Numeric | decimal | 定点数 |
String | str | 可变长度字符串 |
Text | str | 可变长度字符串,适合大量文本 |
Unicode | unicode | 可变长度Unicode字符串 |
Boolean | bool | 布尔值 |
Date | datetime.date | 日期类型 |
Time | datetime.time | 时间类型 |
DateTime | datetime.datetime | 日期时间类型 |
Interval | datetime.timedate | 时间间隔 |
Enum | str | 字符列表 |
PickleType | 任意Python对象 | 自动Pickle序列化 |
LargeBinary | str | 二进制 |
5.使用sqlalchemy
from app import db #创建模型对象 class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) def __repr__(self): return '<User %r>' % self.username # 1.创建表 db.create_all() # 2.增加记录 admin = User(username='admin', email='admin@example.com') guest = User(username='guest', email='guest@example.com') db.session.add(admin) db.session.add(guest) db.session.commit() #3.查询记录,注意查询返回对象,如果查询不到返回None User.query.all() #查询所有 User.query.filter_by(username='admin').first()#条件查询 User.query.order_by(User.username).all()#排序查询 User.query.limit(1).all()#查询1条 User.query.get(id = 123)#精确查询 # 4.删除 user = User.query.get(id = 123) db.session.delete(user) db.session.commit()
推荐阅读