flask连接数据库

3.定义模型
1.数据库 和 框架的配置
1.安装 SQLAlchemy
pip3 install sqlalchemy
pip3 install flask-sqlalchemy
2.创建数据库
create database flask default charset utf8 collate utf8_general_ci;
3.配置数据库
from flask import Flask
#将SQLAlchemy导入进来
from flask_sqlalchmey import SQLAlchemy

app = Flask(__name__)

#app.config['SQLALCHEMY_DATABASE_URI']='mysql://username:pwd@host:port/dbname'
app.config['SQLALCHEMY_DATABASE_URI']='mysql://root:123456@ip:3306/flask'

#创建SQLAlchemy的实例
db = SQLAlchemy(app)

#db是SQLAlchemy的实例,表示程序正在使用的数据库,同时也获得了SQLAlchemy中的所有功能

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位
SamllInteger int 小范围整数,通常16位
BigInteger int或long 不限精度的整数
Float float 浮点数
Numeric decimal.Decimal 定点数
String str 变长字符串
Text str 变长字符串,优化
Unicode unicode 变长Unicode字符串
UnicodeText unicode 优化后的变长Unicode
Boolean bool 布尔值
Date datetime.date 日期
Time datetime.time 时间
DateTime datetime.datetime 日期和时间

OPTIONS 列选项
选项名 说明
primary_key 设置为True则表示该列为主键
unique 设置为True则表示该列的值唯一
index 设置为True则表示该列要创建索引
nullable 设置为True则表示该列允许为空
default 为该列定义默认值
练习:
1.创建 Student 模型类
表名 : student
字段:
1.id,主键,自增
2.sname ,长度为30的字符串,不允许为空
3.sage ,整数
2.创建 Teacher 模型类
表名 :teacher
字段:
1.id,主键,自增
2.tname ,长度为30的字符串
3.tage ,整数
3.创建 Course 模型类
表名:course
字段:
1.id ,主键,自增
2.cname ,长度为30的字符串
4.数据库操作
1.插入
db.session.add(Models)
db.session.commit()

 

 

 

select s.sname,c.cname
from Student as s
inner join Student_Course as sc
on s.id = sc.s_id
inner join Course as c
on c.id = sc.c_id
where s.id = 1

Window 下 : Navicate for MySQL

 

posted @ 2019-12-10 21:05  灰色轨迹8554  阅读(165)  评论(0)    收藏  举报