博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Flask ==> Migrate
阅读量:5366 次
发布时间:2019-06-15

本文共 3561 字,大约阅读时间需要 11 分钟。

Flask  ==>   Migrate

1.结构图

 

2.一般流程。

#!/usr/bin/env python# -*- coding:utf-8 -*-from flask import Flaskfrom auth.auth import Authfrom flask_session import Session# 1. 引入Flask-SQLAlchemyfrom flask_sqlalchemy import SQLAlchemydb = SQLAlchemy()from .views.account import accountfrom .views.main import mainfrom .views.user import user# 3. 导入models中的表from .models import *def create_app():    app = Flask(__name__)    app.debug = True    app.secret_key = 'sdiusdfsdf'    # 设置配置文件    app.config.from_object('settings.DevelopmentConfig')    # 注册蓝图    app.register_blueprint(account)    app.register_blueprint(user)    app.register_blueprint(main)    # 注册组件    # Session(app)    Auth(app)    # 2. 注册 Flask-SQLAlchemy    # 这个对象在其他地方想要使用    # SQLAlchemy(app)    db.init_app(app)    return app
manage.py
#!/usr/bin/env python# -*- coding:utf-8 -*-from flask import Flaskfrom auth.auth import Authfrom flask_session import Session# 1. 引入Flask-SQLAlchemyfrom flask_sqlalchemy import SQLAlchemydb = SQLAlchemy()from .views.account import accountfrom .views.main import mainfrom .views.user import user# 3. 导入models中的表from .models import *def create_app():    app = Flask(__name__)    app.debug = True    app.secret_key = 'sdiusdfsdf'    # 设置配置文件    app.config.from_object('settings.DevelopmentConfig')    # 注册蓝图    app.register_blueprint(account)    app.register_blueprint(user)    app.register_blueprint(main)    # 注册组件    # Session(app)    Auth(app)    # 2. 注册 Flask-SQLAlchemy    # 这个对象在其他地方想要使用    # SQLAlchemy(app)    db.init_app(app)    return app
init.py

init.py 在 manage.py 里的 create_app 跳入之后的。

1.先处理app。

# 1. 引入Flask-SQLAlchemyfrom flask_sqlalchemy import SQLAlchemy   #导入SQLALchemydb = SQLAlchemy()  #实例化SQALchemy对象

ps:  这个 db(sqlalchemy)对象就和session也一样,可以创建个对象。 session里面有个 __init__ 方法,里面含有各种方法。

  

 2.注册 Flask-SQLAlchemy。

运用类似session的__intit__ 引入传参数,然后在执行。

# 1. 引入Flask-SQLAlchemyfrom flask_sqlalchemy import SQLAlchemy   #导入SQLALchemydb = SQLAlchemy(app)  #实例化SQALchemy对象。   db= SQLALchemy(参数)   可以传个app参数
# 2. 注册 Flask-SQLAlchemy # 这个对象在其他地方想要使用 # SQLAlchemy(app)
db.init_app(app)   #执行

 

3.导入models表。

# 3. 导入models中的表from .models import *

 

4.写类继承db.Model。

ps: 正经:  原来我们写的继承Base。

  不正经: 一下这种方式,饶了一圈。本质和Base一样的。

 

5.主要功能: 创建,修改表等等功能。 中间有一步: 定制命令,  manager=Manager(app)

 

 

5.1:导入:from flask_migrate import Migrate, MigrateCommand

from app import create_app, db

 

 

5.2 创建migrate 示例

 

5.3  创建db命令

 

 连接数据库用配置文件init里的文件执行 。我们用了flask组件,以后就去配置文件里写就好了。

 只要把 sqlalchemy 的参数拿到配置文件里就好了。

1.拿配置文件

 

setting.py:

 

 最后连上数据库:

3.Flask_migrate    : 类似django的  python manage.py db migrate   =  python  manage.py makemigrations                                       python manage.py db upgrade   = python  manage,py migrate

 

 二: 操作数据库

 1. 对数据库做操作需要有session。有了session才能做操作。那么 session从哪来呢?

  回答:  db.session  它会自动帮我们创建session。  它是  flask里的 sqlalchemy 的对象里面的session。

  以前我们会的session两种:

    1.  线程安全

    2. 手动创建

  

 

 

 

后面两步:要 commit  和  remove

  执行sql  方式:

  1.第一种方式:

  

方式一:            result = db.session.query(models.User.id,models.User.name).all()            db.session.remove()

 

 

  2.第二种方式:

方式二:            result = models.Users.query.all()   #局限于自己那张表

 

 

flask回顾:用了哪些插件

   Flask  

  DButils  : 针对原生sql的时候用的。 之后如果需要用 sqlalchemy  那么我们就只好二选一了。 也可都用,但是最好不要这样。

  Flask-session:

  Flask-Script:

  Flask-Migrate:

  Flask-SQLAIchemy:

  blinker:

  wtforms:

 

requirements.txt:

pip3  freeze
pip3 freeze > requirements.txt

 获取环境中所有安装的模块。

 

# pip3 install pipreqs # 获取当前所在程序目录中涉及到的所有模块,并自动生成 requirements.txt 且写入内容。
 pipreqs ./  #  写程序路径, 我们需要找谁,它会帮我们找到
进入程序目录:     pip3 install -r requirements.txt

 

转载于:https://www.cnblogs.com/zhongbokun/p/8279125.html

你可能感兴趣的文章
SSIS的部署和配置
查看>>
计算机内存管理介绍
查看>>
POJ 2761 Feed the dogs 求区间第k大 划分树
查看>>
mysql中间件研究(Atlas,cobar,TDDL)[转载]
查看>>
ASP.NET应用程序与页面生命周期
查看>>
Linux--多网卡的7种Bond模式
查看>>
Oracle命令(一):Oracle登录命令
查看>>
业务建模 之 业务用例图
查看>>
EasyUI基础入门之Pagination(分页)
查看>>
一次PHP代码上线遇到的问题
查看>>
显示密码
查看>>
实现one hot encode独热编码的两种方法
查看>>
ubuntu中文英文环境切换
查看>>
[sql]mysql启停脚本
查看>>
[elk]Mutate filter plugin增删改查字段
查看>>
Java内功心法,行为型设计模式
查看>>
向github项目push代码后,Jenkins实现其自动构建
查看>>
jquery中的ajax方法参数的用法和他的含义
查看>>
BZOJ 1226: [SDOI2009]学校食堂Dining
查看>>
数组去重的几种方法
查看>>