一:flask-sqlalchemy操作

flask-sqlalchemy	: 让flask更好的集成sqlalchemy
flask_migrate :类似于django的makemigrations和migrate,因为sqlalchemy不支持表修改(删除,增加字段)

1.引入:

1.在开发过程中,需要修改数据库模型,而且还要在修改之后更新数据库。最直接的方式就是删除旧表,但这样会丢失数据。

2.更好的解决办法是使用数据库迁移框架,它可以追踪数据库模式的变化,然后把变动应用到数据库中。

2.Flask-Migrate扩展

1.在Flask中可以使用Flask-Migrate扩展,来实现数据迁移。并且集成到Flask-Script中,所有操作通过命令就能完成。

2.为了导出数据库迁移命令,Flask-Migrate提供了一个MigrateCommand类,可以附加到flask-script的manager对象上。

3.flask-sqlalchemy与slask_migrate作用

flask-sqlalchemy	: 让flask更好的集成sqlalchemy

flask_migrate		:类似于django的makemigrations和migrate,因为sqlalchemy不支持表修改(删除,增加字段)

4.flask-migrate初始化与迁移数据库介绍

python3 manage.py db init 初始化:项目开始只执行一次(生成migrations文件夹)
python3 manage.py db migrate 等同于 makemigartions(models模型层,增删改记录)
python3 manage.py db upgrade 等同于migrate(同步记录到models模型层内)

5.flask-sqlalchemy 操作迁移数据库

# 1.先导入,实例化得到一个对象
from flask_sqlalchemy import SQLAlchemy
# 2.生成db对象
db = SQLAlchemy()
# 3.所有表模型都继承 db.Model
# 4.在视图函数中查询那个session对象
db.session

6.导出项目依赖

# 安装:pip3 install pipreqs
#导出:pipreqs . --encoding=utf8

二:Flask-Migrate的作用

负责表结构同步

db.create_all 方法,同步表结构,create_all方法只能够对新增模型进行同步,如果模型发生修改,不能够同步

flask-migrate可以对发生变更的模型进行同步

(一) 安装插件

pip  install flask-migrate

(二)使用

1、实例化

实例化步骤

2、添加命令

添加migrate命令

(三) 同步表结构

1、init 初始化,只需执行一次

初始号操作

2、migrate--将模型的变更生成迁移文件

生成迁移文件

3、upgrade

执行生成的文件,同步到表结构中

 python main.py db upgrade

Flask框架(flask-sqlalchemy操作,Migrate作用,Flask迁移数据库,Flaks同步表数据)的更多相关文章

  1. Python基于Flask框架配置依赖包信息的项目迁移部署小技巧

    一般在本机上完成基于Flask框架的代码编写后,如果有接口或者数据操作方面需求需要把代码部署到指定服务器上. 一般情况下,使用Flask框架开发者大多数都是选择Python虚拟环境来运行项目,不同的虚 ...

  2. 面试简历书写、Flask框架介绍与快速使用、Flask演示登录页面、用户信息页面案例

    今日内容概要 面试简历编写 Flask框架介绍与安装 内容详细 1.面试简历编写 # 千万不要几个小时把简历凑出来 几天到一周 # 有没有面试机会,取决于简历写得怎么样 简历写好是第一步 # 投简历的 ...

  3. flask中使用SQLAlchemy操作mysql的一些注意事项和坑

    一 ImportError: cannot import name 'db' 由于app最后才加载,所以其他文件,比如models.py不能从app.py导入任何变量, 要使用db可以先定义一个,之后 ...

  4. flask框架的学习

    ---恢复内容开始--- 第一个flask程序讲解:1. 第一次创建项目的时候,要添加flask的虚拟环境.添加虚拟环境的时候,一定要选择到python这个执行文件.比如你的flask的虚拟环境的目录 ...

  5. Flask框架搭建一个日程表

    目录 前言 项目介绍 技术栈 Flask Web开发流程 一.搭建环境 1.1: 创建虚拟环境 1.2: 安装依赖包 1.3: 创建依赖包列表文件 1.4: 测试hello word 二.应用程序开发 ...

  6. flask框架搭建项目的具体步骤

    flask是一个使用python编写的轻量级Web应用框架.与django不同,Django创建工程时,会直接构架好工程目录.而flask工程几乎是自己创建结构. 1.导入相关模块以及需要使用的模块: ...

  7. Flask框架从入门到实战

    Flask简介: Flask是一个使用 Python 编写的轻量级 Web 应用框架,基于 WerkzeugWSGI工具箱和 Jinja2模板引擎.使用 BSD 授权. Flask也被称为 " ...

  8. flask框架学习

    第一:flask框架基础入门 第二:flask框架框架概述 第三:flask框架请求数据 第四:flask框架路由系统 第五:flask框架静态文件 第六:flask框架模板引擎 第七:flask其他 ...

  9. python web开发flask框架 安装与环境

    # encoding:utf-8 # 从flask这个框架中导入Flask这个类 from flask import Flask # 初始化一个Flask对象 # Flasks() # 需要传递一个参 ...

  10. flask 框架快速入门

    flask 框架快速入门 搭建一个简易flask项目 首先使用 Pycharm创建flask项目 运行flask项目 1.使用Pycharm搭建flask项目 (如果Pycharm新建项目中未出现该图 ...

随机推荐

  1. 利用curl命令访问Kubernetes API server

    kubectl 通过访问 Kubernetes API 来执行命令.我们也可以通过对应的TLS key, 使用curl 或是 golang client做同样的事. API 请求必须使用 JSON 格 ...

  2. django-compressor安装失败

    报错日志: Installing collected packages: rcssmin, django-compressor Running setup.py install for rcssmin ...

  3. java设计模式之七大原则

    java设计模式 以下内容为本人的学习笔记,如需要转载,请声明原文链接   https://www.cnblogs.com/lyh1024/p/16724932.html 设计模式 1.设计模式的目的 ...

  4. Java(15)Object类

    前言 Object类是Java中所有类的始祖,在Java中每个类都扩展了Object.如果没有明确地指出超类,Object就被认为是这个类的超类.由于在Java中每个类都是由Object类扩展而来的, ...

  5. Filter 筛选器(三)之 自定义一个启动事务的 TransactionScopeFilter

    如果一个方法内有多个写入操作,比如 写入A表,然后用A表的自增id 去写入B表,假如A表写入成功,但B表因为某种原因写入失败!(这就导致A表写入了脏数据) 这时候 我们可以自定义 一个Filter 进 ...

  6. 安装 LAMP 环境(yum 版本) shell脚本

    #!/bin/bash # 安装 LAMP 环境(yum 版本) # 本脚本适用于 RHEL7(RHEL6 中数据库为 mysql) yum makecache &>/dev/null ...

  7. 9. RabbitMQ系列之消息发布确认

    Publisher Confirms发布确认是用于实现可靠发布的RabbitMQ扩展. 我们将使用发布确认来确保已发布的消息已安全到达代理.我们将介绍几种使用publisher确认的策略,并解释其优缺 ...

  8. java实现单链表的创建、增、删、改、查

    文章目录 单链表的创建.增.删.改.查 1.增加一个节点 2.删除一个节点 3.修改某一个节点 5.遍历单链表 单链表的创建.增.删.改.查 双向链表的增删改查:https://blog.csdn.n ...

  9. 修改服务器ssh端口

    最近,访问公司虚拟机都需要通过堡垒机才能访问了,觉得麻烦.要想不受该规则限制,也有办法,可以通过修改虚拟机ssh端口解决. 下面做个介绍. 1. 通过堡垒机登录虚拟机 2. 修改虚拟机ssh端口 编辑 ...

  10. Golang 实现时间戳和时间的转化

    何为时间戳: 时间戳是使用数字签名技术产生的数据,签名的对象包括了原始文件信息.签名参数.签名时间等信息.时间戳系统用来产生和管理时间戳,对签名对象进行数字签名产生时间戳,以证明原始文件在签名时间之前 ...