Flask框架(flask中的数据库SQLAlchemy(python3),配置、模型类、创建表)
1. SQLAlchemy是一个关系型数据库框架,
它提供了高层的ORM和底层的原生数据库的操作。
flask-sqlalchemy是一个简化了SQLAlchemy操作的flask扩展。
2. 安装
环境 python3.6 + window10 + pycharm
pip install flask-sqlalchemy
pip install mysql-connector # 安装驱动 (不安装的话会报出警告)
如果用的虚拟环境,记得安装在虚拟环境当中
3. sqlalchemy的常用配置
(1) app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+mysqlconnector://root:mysql@127.0.0.1:3306/test'
# 后面字符串的解释 mysql+mysqlconnector://用户名:密码@127.0.0.1:3306/数据库名
一般IP和端口都是 127.0.0.1:5000
( 2) app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
# True 让数据库里面的数据和模型数据库里面的数据保持一致
(3) #查询时会显示原始SQL语句
app.config['SQLALCHEMY_ECHO'] = True
4. 创建模型类:
模型类; 创建数据库模型类(继承 sqlalchemy 工具对象中的Model类),
一个模型类对应一张模型表
数据库表名的常见规范:
(1) 数据库名缩写_表名 (2) tbl_表名
创建模型类时常用的SQLAlchemy字段类型 :
创建模型类时常用的SQLAlchemy列选项 :
创建模型类时常用的SQLAlchemy关系选项:
5. 创建所有的表: db.drop_all()
删除所有的表: db.create_all()
注意: db是 db = SQLAlchemy(app) # 创建数据库 sqlalchemy 工具对象
6. 创建一个用户表和用户身份表,并做好设置,运行程序,没有报错 即创建成功,或者自己也可以在程序完成之后
print("创建成功"),,看下面的程序
[code]from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) class Config(object): """配置参数""" '''sqlalchemy的配置参数''' SQLALCHEMY_DATABASE_URI = "mysql+mysqlconnector://root:123456@127.0.0.1:3306/db_python" '''设置sqlalchemy自动跟踪数据库''' SQLALCHEMY_TRACK_MODIFICATIONS = True # 设置参数 app.config.from_object(Config) '''创建数据库 sqlalchemy 工具对象''' db = SQLAlchemy(app) """ 创建数据库模型类(继承 sqlalchemy 工具对象中的Model类),一个模型类对应一张模型表 数据库表名的常见规范: (1) 数据库名缩写_表名 (2) tbl_表名 """ class Role(db.Model): """用户身份表""" __tablename__ = "tbl_roles" id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(32), unique=True) ''' relationship()把两个表关联在一起,不添加也是可以的,根据自己的需求 backref : 在关系的另一模型中添加反向引用 相当于给要关联的表添加一个role属性 不添加也是可以的,根据自己的需求 ''' user = db.relationship("User", backref="role") # 从模型类中 class User(db.Model): """用户表""" __tablename__ = "tbl_users" # 指明数据库的表名 id = db.Column(db.Integer, primary_key=True) # 整型的主键,会默认设置为自增主键 name = db.Column(db.String(64), unique=True) email = db.Column(db.String(128), unique=True) password = db.Column(db.String(128)) role_id = db.Column(db.Integer, db.ForeignKey("tbl_roles.id")) # 从底层中 if __name__ == '__main__': '''清除数据库中的所有数据''' db.drop_all() '''创建所有表''' db.create_all()
然后在数据库中,就可以看见,创建好的表,如下图:
这个就直接把模型类即模型表就创建好了
- Flask中之数据库框架和模型类一:SQLAlchemy配置说明,字段类型,约束条件
- Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
- Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
- 三十四、python学之Flask框架(六)数据库:mysql数据库及Flask-SQLAlchemy
- Flask中之数据库框架和模型类四:再述SQLAlchemy配置,表的操作和基本操作之增删改查
- 在Linux上安装Python的Flask框架和创建第一个app实例的教程
- 【从零开始】Python的框架Flask环境配置流程以及Postman使用(第一课)
- Python基于Flask框架配置依赖包信息的项目迁移部署小技巧
- 在python的WEB框架Flask中使用多个配置文件的解决方法
- Python的Django框架中使用SQLAlchemy操作数据库的教程
- python3之flask框架连接redis数据库
- Python Flask & Django框架中配置logging日志文件
- python - web框架 - Flask sqlalchemy Mysql
- python Flask框架的中配置文件加载的五中方法使用
- Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
- Flask框架(SQLAlchemy(python3版本)中查询数据的方法,以及定义显示信息 )
- Python的Flask框架与数据库连接的教程
- Python框架之Django的数据库配置问题
- python与数据库sqlalchemy框架简述
- Python的Django框架中使用SQLAlchemy操作数据库的教程