首页 > 其他分享 >Flask 模型基础

Flask 模型基础

时间:2023-06-02 10:22:14浏览次数:26  
标签:Flask 基础 模型 db Column Model True 迁移

Flask 模型

Flask默认并没有任何数据库操作的API

我们可以选择认可适合自己项目的数据库来使用

Flask中可以根据自己的选择用原声语句实现功能,也可以选择ORM(SQIAlchemy、MongoEngine)

 

ORM

Flask用过Model操作数据库,不管你数据库的类型是Mysql或者Sqlite,Flask自动帮你生成相应数据库类型的SQL语句,所以不需要关注SQL语句和类型,对数据的操作FLask帮我们自动完成。只要会写Model就可以了。

Flask使用对象关系映射(OBject Relational Mapping ,简称ORM)框架去操控数据库。

 

将对对象的操作转换成为原生SQL

优点

  易用性,可以减少重复SQL

  性能损耗少

  设计灵活,可以轻松实现复杂查询

  移植性好

 

# 对应关系

模型 ==> 数据库

类 ==> 表结构

类属性 ==> 表字段

一个对象 ==> 表的一行数据

 

# 模型Model:类
#  必须继承 db.Model
class User(db.Model):
    # 表名
    __tablename__ = 'tb_user'
    # 定义表字段
    id = db.Column(db.Intger, primary_key=True, autoincrement=True)
    name = db.Column(db.String(30), unique=True, index=True)
    age = db.Column(db.Integer, default=1)
    sex = db.Column(db.Boolean, deafult=True)
    salary = db.Column(db.Float, default=100000, nullable=Flase)
    
     
    
# db.Column: 表示字段
# db.Integer: 表示整数
# primary_key = True: 主键
# autoincrement = True : 自动递增
# db.String(30): varchar(30) 可变字符串
# unique =True: 唯一约束
# index=True : 普通索引
# nullable=False: 是否允许为空
# default = 1: 默认为1

 

 

执行数据迁移命令:

  先在cmd或Terminal进入项目目录(app.py所在目录):

  然后输入命令:

    flask db init  创建迁移文件夹migrates,只调用一次

    flask db migrate  生成迁移文件  他会自动检测models.py的中继承db.Model的类转换成中间类,转换成sql语句

    flask db upgrade  执行迁移文件中的升级  执行迁移文件中的创建表操作

    flask db downgrade  执行迁移文件中的降级 表示  撤销文件的升级

 

    当你迁移完后,打开tables会有三张表:

      alembic_version  自动生成的 会记录你的迁移文件

      sqlite_master   自动生成的  会做一些记录

      自己创建的表

 

表结构改变,就需要重新迁移  

 

标签:Flask,基础,模型,db,Column,Model,True,迁移
From: https://www.cnblogs.com/jiqiong/p/17451016.html

相关文章

  • OCR -- 文本检测 - 训练DB文字检测模型
    百度飞桨(PaddlePaddle)-PP-OCRv3文字检测识别系统预测部署简介与总览百度飞桨(PaddlePaddle)-PP-OCRv3文字检测识别系统PaddleInference模型推理(离线部署)百度飞桨(PaddlePaddle)-PP-OCRv3文字检测识别系统基于PaddleServing快速使用(服务化部署-CentOS)百度飞......
  • QLoRa:在消费级GPU上微调大型语言模型
    大多数大型语言模型(LLM)都无法在消费者硬件上进行微调。例如,650亿个参数模型需要超过780Gb的GPU内存。这相当于10个A10080gb的gpu。就算我们使用云服务器,花费的开销也不是所有人都能够承担的。而QLoRa(Dettmersetal.,2023),只需使用一个A100即可完成此操作。在这篇文章中......
  • 音视频基础概念
    DTS与PTSDTS:DecodeTimeStamp,用于标识读入内存的比特流什么时候送入解码器编码PTS:PresentationTimeStamp,用于标识解码后的视频帧什么时候显示出来 GOP(GroupOfPictures)是图像组的概念,它指的是视频编码序列中两个I帧之间的距离。 通常意义上的GOP由I帧开始,到下一个I......
  • 扩散模型 - DDPM 优化
    3DDPM的优化3.1参数优化3.1.1优化βt在"ImprovedDenoisingDiffusionProbabilisticModels".一文中,作者提出了多种优化DDPM的技巧。其中一种就是把βt的线性机制改为余弦机制。机制(schedule)函数的实现相对灵活,只要保证在训练的中间过程提供近似-线性的下降并且在......
  • NAT基础
    第一个问题,为什么?为什么存在NAT,设计NAT解决了哪些问题?场景1.作为企业内网的用户需要访问公网,但是公有IP地址不够用,如果所有企业的每一台主机都申请一个公有IP,则公有IP很快就会消耗殆尽。局域网私网地址用户访问公网-出方向场景2.企业在局域网部署了一台服务器,对外提供如web服......
  • vue基础用法-内容渲染指令
    1.指令的概念指令(Directives)是vue为开发者提供的模板语法,用于辅助开发者渲染页面的基本结构。vue中的指令按照不同的用途可以分为如下6大类:内容渲染指令属性绑定指令事件绑定指令双向绑定指令条件渲染指令列表渲染指令注意:指令是vue开发中最基础、最常用、最简单的知识......
  • 基于arx模型的MPC预测控制器simulink仿真
    1.算法仿真效果matlab2022a仿真结果如下: 2.算法涉及理论知识概要        arx模型是一种重要的时间序列分析模型,能够用来描述实际应用中的许多问题,在经济、电力系统、车辆驾驶、医疗、信号处理等领域都有着广泛的应用。因此,基于arx模型的相关理论和方法受到了大量关......
  • m基于MPC模型预测的网络控制系统simulink仿真
    1.算法仿真效果matlab2022a仿真结果如下: 2.算法涉及理论知识概要       随着通信网络和信息理论的迅速发展,网络控制系统引起了研究人员和工程师的兴趣。众所周知,网络控制系统是一个非常具有挑战性和前景的研究领域。因此,网络控制系统(NCS)实现了传感器,控制器和执行器......
  • 一. 数字图像处理基础
    一.数字图像处理基础1.1图像表示图像就是矩阵,在python中表示为数组形式。1.2图像模型1.2.1RGB模型R:红,【0,255】G:绿B:蓝EG:#FF255255255:以两位为跨度,前两位为透明度,随后依次为:R、G、B模型如下:1.2.2HSI模型H(Hue,色调):与光波的波长有关,表示人的感官对不同颜色的感......
  • R语言Lasso回归模型变量选择和糖尿病发展预测模型|附代码数据
    全文链接:http://tecdat.cn/?p=22721最近我们被客户要求撰写关于Lasso回归的研究报告,包括一些图形和统计输出。LeaseAbsoluteShrinkageandSelectionOperator(LASSO)在给定的模型上执行正则化和变量选择 ( 点击文末“阅读原文”获取完整代码数据******** )。根据惩罚项的大小......