SQLAlchemy定义模型

1. 数据库 和 框架的配置

1.安装 SQLAlchemy

pip3 install sqlalchemy
pip3 install flask-sqlalchemy
  1. 创建数据库
create database flask default charset utf8 collate utf8_general_ci;
  1. 配置数据库
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. 定义模型

  1. 模型: 数据库中的表在编程语言中的提现,其本质就是一个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 为该列定义默认值

你可能感兴趣的:(SQLAlchemy定义模型)