共计 1879 个字符,预计需要花费 5 分钟才能阅读完成。
一、安装扩展库
- 安装 pymysql 扩展库
pip install pymysql
- 安装 flask-sqlalchemy 扩展库
pip install flask-sqlalchemy
本扩展库为 flask 用于操作数据库进行 ORM 转换
二、代码配置
在 manage.py 中添加如下代码
from flask import Flask # 导入 Flask 类 | |
# 导入 ORM 转换库 | |
from flask_sqlalchemy import SQLAlchemy | |
app = Flask(__name__) # 进行实例化 | |
# 配置数据库 | |
# 设置链接数据库的 URI mysql+pymysql:// 数据库用户名: 密码 @ip: 端口 / 数据库名 | |
app.config["SQLALCHEMY_DATABASE_URI"] = "mysql+pymysql://lucky:123456@127.0.0.1:3306/lucky" | |
# 进制对象的修改追踪 | |
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False | |
# 创建数据库对象 | |
db = SQLAlchemy(app) |
三、表分析
需求: 创建用户表
-
一个用户表所需字段
用户名 密码 性别 年龄 是否删除
-
创建模型代码位置
manage.py(当前阶段为 manage.py)
-
模型、属性、表之间的关联
一个模型类 对应数据库中的一张表 一个类属性 对应 表中的一个字段
-
创建用户表模型
class User(db.Model): | |
__tablename__ = "user" # 指定表名 | |
id = db.Column(db.Integer, primary_key=True) # 设置主键 | |
username = db.Column(db.String(12)) # 用户名 最大长度 12 | |
password = db.Column(db.String(64)) # 用户密码 最大长度 64 | |
sex = db.Column(db.Boolean, default=True) # 性别 默认为 True | |
age = db.Column(db.Integer, default=18) # 年龄 默认 20 岁 | |
isDelete = db.Column(db.Boolean, default=False) # 是否删除 默认不删除 |
四、创建表
def create_table(): | |
db.create_all() | |
return '创建表' |
后期不使用当前方式进行表的创建
五、删除表
def drop_table(): | |
db.drop_all() | |
return '删除表' |
后期不使用当前方式进行表的创建
六、测试数据库
-
安装 flask-script 扩展库
什么是 Flask-Script?
Flask-Script 用来生成 shell 命令 为在 Flask 里编写额外的脚本提供了支持
安装
pip install flask-script
-
配置
from flask_script import Manager app = Flask(__name__) # Manager 类将追踪所有的在命令行中调用的命令和处理过程的调用运行情况 manager = Manager(app) if __name__ == "__main__": # 将启动 Manger 实例接收命令行中的命令 manager.run() -
进入到 python shell 进行测试
python manage.py shell
-
导入 User 模型类以及 db 对象
>>> from manage import User,db
-
添加数据
u = User() # 实例化 User 模型类 u.username = 'lucky' # 添加用户名 u.password = 123456 # 添加密码 u.sex = True # 添加性别 u.age = 18 # 添加年龄 db.session.add(u) # 进行保存 db.session.commit() # 事务提交 -
查询数据
u = User.query.get(1) # 查询 id 为 1 的用户对象 u <User 1> u.username 'lucky' -
修改数据
u = User.query.get(1) # 查询 id 为 1 的用户对象 u.username = '帅气的 lucky' # 修改用户名为帅气的 lucky db.session.add(u) # 进行保存 db.session.commit() # 事务提交 -
删除数据
u = User.query.get(1) # 查询 id 为 1 的用户对象 db.session.delete(u) # 进行删除 db.session.commit() # 事务提交
正文完
星哥玩云-微信公众号
