当前位置: 首页 > 工具软件 > Flask-Migrate > 使用案例 >

Flask-闪消息-sqlalchemy插件-migrate插件

夏新翰
2023-12-01

1.闪消息

1.1  闪消息 存储于 session 中,当在模板中显示了 闪消息后, 自动删除 session 
		中的闪消息数据
		发送闪消息: flash("闪消息内容")
1.2  模板中显示 闪消息,并从 session 中删除该闪消息 (必须在模板中使用)
		{% for message in get_flashed_messages() %}
			{{ message }}
		{% endfor %}

后端发送闪消息

# 存储信息到session 中
flash("用户名或密码错误,请重新登录")
# 重定向到前端 视图
return redirect(url_for("myblue.welcome_view"))

前端模板接收闪消息

<body>
	{% for msg in get_flashed_messages() %}
		{{ msg }}
	{% endfor %}
</body>

2. flask-sqlalchemy插件

2.1 作用:

	给Flask 框架提供了 关系型数据库的通用操作

2.2 安装

	pip install flask-sqlalchemy 

2.3 使用

	1. 通过shell 交互环境  
			python 启动文件 shell
	2. 启动开发服务器使用
	3. 使用步骤:
			3.1  创建SQLALchemy对象:db = SQLAlchemy()
			3.2 创建模型
			3.3 创建程序实例,并设置数据库配置
			3.4 操作数据库
# 创建模型
class Product(db.Model):
	# 对应数据库表名称
	__tablename__ = "products" 
	# 属性对应数据库表字段
	id = db.Column(db.Integer,primary_key=True)
	price = db.Column(db.Float)
	address = db.Column(db.String(20))
	
# 创建程序实例,并设置数据库配置
app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"]="mysql+pymysql://root:123456@localhost:3306/mydb?charset=utf8"
# 关闭记录数据操作数据库的功能
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = True
db.init_app(app) # app 与db 关联

# 操作数据库
# 创建表
db.create_all()
# 删除表
db.drop_all()
# 添加记录
db.session.add(模型对象)
db.session.commit()
# 添加多个模型对象
db.session.add_all([模型对象1,模型对象2])
# 删除某条记录
db.session.delete(product)
db.session.commit()
# 查询所有记录
模型类名称.query.all() # 查询结果时list
# 根据条件查询
模型类名称.query.filter_by(关键字参数)  #查询结果时BaseQuery, BaseQuery 调用all() 返回list; 调用first() 返回模型对象
# 通过filter() 方法进行复杂查询
products = Product.query.filter(Product.name.startswith("产品")).all()
products = Product.query.filter(Product.name.startswith("产品")).first()
fruts = Fruit.query.filter(Fruit.name.endswith("子"))
# 通过get()方法 查询主键,返回模型对象
模型类名称.query.get(主键)
Product.query.get(1)
# 模型类 modes.py
class Student(db.Model):
	__tablename__ = "students" # 映射的表名称
	id = db.Column(db.Integer,primary_key=True,autoincrement=True)
	name = db.Column(db.String(20),nullable=False)
	score = db.Column(db.Float,nullable=False)

# 数据库关联 flask应用程序  ext.py
db = SQLAlchemy()
def init_ext():
	db.init_app(app)  # 数据库关联 app
	
# 产生 flask 应用程序 __init__.py
def create_app():
	app = Flask(__name__)
	# 配置数据库连接信息
	app.config["SQLALCHEMY_DATABASE_URL"]="mysql+pymysql://root:123456@localhost:3306/mydb?charset=utf8"
	app.config["SQLALCHEMY_TRACK_MODIFICATIONS"]=False
	init_ext(app)
	return app
# 程序启动脚本 manager.py
app = create_app()
manager = Manaager(app)
if __name__ == "__main___":
	manager.run()

3.flask-migrate插件

3.1 作用:迁移模型

3.2 安装方式:pip install flask-migrate

3.3 使用 flask-migrate插件与flask-script插件结合

		1. 指定app 与  db, 目的是创建migrations 目录
			migrate = Migrate(app,db)
			manager = Manager(app)
		2. 注册一个自定义的迁移命令
			manager.add_command("nicedb",MigrateCommand)  #注册命令 
		3. 迁移步骤:
			第一步:  初始化迁移目录
						python 启动脚本.py 注册命令 init
			第二部:  制作迁移文件
						python 启动脚本.py 注册命令 migrate
			第三部: 迁移模型到数据库
						python 启动脚本.py 注册命令 upgrade
 类似资料: