1. 数据库 和 框架的配置
1.安装 SQLAlchemy
pip3 install sqlalchemy
pip3 install flask-sqlalchemy
- 创建数据库
create database flask default charset utf8 collate utf8_general_ci;
- 配置数据库
from flask import Flask
# 将SQLAlchemy导入进来
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
#app.config['SQLALCHEMY_DATABASE_URI']='mysql://username:pwd@host:port/dbname'
app.config['SQLALCHEMY_DATABASE_URI']='mysql://root:xzl1122@localhost:3306/flask'
if __name__ == "__main__":
app.run(debug=True)
2. 定义模型
- 模型: 数据库中的表在编程语言中的提现,其本质就是一个python的类(可称为:模型 或 实体) 。 类中的属性要与数据库表中的列相对应。
使用主键来约束实体完整性.
语法:
class MODELNAME(db.Model):
__tablename__ = "TABLENAME"
COLUMN_NAME = db.Column(db.TYPE, OPTIONS)
1.MODELNAME
:定义模型类名称,根据表名设定
2.TABLENAME
:映射到数据库中表的名字
3.COLUMN_NAME
:属性名,映射到表中列的名字
4.db.TYPE
:映射到列的数据类型
5.OPTIONS
:列选项
db.TYPE 列类型如下:
类型名 | python类型 | 说明 |
---|---|---|
Integer | int | 普通整数, 32位 |
SmallInteger | int | 小范围整数,通常 16 位 |
BigInteger | int 或 long | 不限精度的整数 |
Float | float | 浮点数 |
Numeric | decimal.Decimal | 定点数 |
String | str | 变长字符串 |
Text | str | 变长字符串,优化 |
Unicode | unicode | 变长Unicode字符串 |
UnicodeText | unicode | 优化后的变长Unicode |
Boolen | bool | 布尔值 |
Date | datetime.date | 日期 |
Time | datetime.time | 时间 |
DateTime | datetime.datetime | 日期和时间 |
OPTIONS 列选项
若在一个列中需要声明多个列选项,用逗号隔开
选项名 | 说明 |
---|---|
primary_key | 若设置为True则表示该列为主键(若为整数,则是自增的) |
unique | 设置为True则表示该列的值唯一(允许为空,但只能有一个为空) |
index | 设置为True则表示该列要创建索引(频繁被查找) |
nullable | 设置为True则表示该列允许为空 |
default | 为该列定义默认值 |