Flask与Mysql数据库建立连接

该开始学习Flask,接触到数据库方面,记录一点儿笔记,希望有用。

环境:python3.7.7,flask1.1.2

与数据库建立联系,需要在自己的虚拟环境中pip install :flask-script,pymysql,flask-sqlalchemy,flask-imgrate(4个库)

1.Flask-Script扩展提供向Flask插入外部脚本的功能,内置命令shell和runserver,也可以自定义。在Flask工程中,当在app.py文件中创建好app对象后,要用manager来包裹:

#app.py文件
from flask_script import Manager
manager=Manager(app=app)#创建app对象后,用manager包裹
manager.run()#在main函数中,运行程序

2.flask-sqlalchemy提供了SQL工具包及对象关系映射(ORM)工具

#1.在settings.py文件中配置
SQLALCHEMY_DATABASE_URI='mysql+pymysql://root:[email protected]:3306/flaskday05'#访问的数据库+用的驱动://数据库的用户名:密码@服务器地址:端口号/数据库
SQLALCHEMY_TRACK_MODIFICATIONS=False
SQLALCHEMY_ECHO=True#调试模式
#2.在exts包的__init__.py文件中引入外部工具包
from flask_sqlalchemy import SQLAlchemy
db=SQLAlchemy()#创建了db数据库对象
#3.在总蓝图apps的__init__.py文件中将db对象与app对象关联起来
from exts import db
db.init_app(app)

3.flask-migrate是一个为Flask应用处理SQLAlchemy数据库迁移的扩展,使得可以通过Flask的命令行接口或者Flask-Scripts对数据库进行操作。

#在app.py文件中,当创建完app对象之后
from flask_migrate import Migrate, MigrateCommand
migrate=Migrate(app=app,db=db)#建立app影响数据库的映射
manager.add_command('db',MigrateCommand)#将命令交给manager管理

4.在各蓝图中创建模型(类)时,要用到db的model

#在model.py文件中
from exts import db
class User(db.Model):

5.将创建好的模型(自定义的类)导入到app.py文件中

from apps.user.models import User

6.使用terminal运行pytho:

初始化(一个项目只需要初始化一次,用来生成migrations文件夹)python app.py db init

更新版本(每次修改后要运行,用来在versions文件中生成最新的版本py文件)python app.py db migrate

数据库同步(每次修改要运行,用来将最新版本的内容更新到数据库上)python app.py db upgrade

删除时:python app.py db downgrate 并删除版本文件

猜你喜欢

转载自www.cnblogs.com/Turing-dz/p/13170115.html