flask依据现有的库表快速生成flask实体类

flask依据现有的库表快速生成flask实体类

在实际开发过程中,flask的sqlalchemy对应的model类写起来重复性较强,如果表比较多会比较繁琐,这个时候可以使用 flask-sqlacodegen 来快速的生成model程序或者py文件,以下是简单的示例,可以作为参考

  • 以下建议先在一个干净全新的python3.6.8环境下使用,可以避免环境引起的错误

command not found: sqlacodegen

  1. 安装命令

pip install Flask-SQLAlchemy sqlacodegen
pip install pymysql

  1. 创建一个flask应用程序,实例化SQLAlchemy,配置相关的数据库连接信息
from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://username:password@localhost/database'
db = SQLAlchemy(app)

注意⚠️:将 账户、密码、IP等信息 替换为实际的数据库连接 URI

  1. 运行 Flask 应用程序,使数据库模型类与数据库表进行关联。确保在运行应用程序之前,数据库已经创建并准备好。
    比如:你要转化表 query_users 的对应映射类,需要提前创建好 query_users

输入 sqlacodegen 出现以下信息表示配置成功
在这里插入图片描述

  1. 打开命令行终端,进入你的项目目录,并执行以下命令来生成模型类文件:

sqlacodegen your_database_uri > models.py

注意⚠️:将 ‘your_database_uri’ 替换为实际的数据库连接 URI

  1. 打开 models.py 文件,你将看到由 sqlacodegen 自动生成的模型类。这些类将与你的数据库表相对应。你可以根据需要对其进行进一步的自定义和调整。

  2. 步骤 4 中的命令是把该库底下的所有表都转化为了 Flask 模型类,如果想针对某一个表进行转化可以增加参数使用以下命令

–tables 指定要转化的表名
–outfile 指定保存的 py 文件路径

sqlacodegen --tables api_test --outfile models.py your_database_uri
  1. 如果不想生成文件,直接在终端中打印代码,可以去掉 --outfile 输出文件命令
sqlacodegen your_database_uri --tables api_test

以上就是使用 flask-sqlacodegen 将mysql中对应表转化为 flask 模型类 的所有内容

感谢观看,希望对读者有所帮助,有疑问可以评论,不定时回复

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/187767.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

人力资源管理后台 === 基础环境+登陆

目录 1.人力资源项目介绍 1.1 项目架构和解决方案 1.2 课程安排 1.3 课程具备能力 1.4 课程地址 2. 拉取项目基础代码 3.项目目录和入口文件介绍 4.App.vue根组件解析 5.基础设置settings.js和导航守卫permission.js 6.Vuex的结构 7.使用模板中的Icon图标 8.扩展…

【Python】(自定义类)计算语句执行时间

一个玩具,写着来玩的。 用的time模块,代码很简单(所以才说是个玩具) 代码: import time class TimeStamp:__timestampNone__keyNonedef __init__(self,tipsNone,keyNone):self.__timestamp{}self.NewStamp(tips,key)def NewStamp(self,tips,…

Python编程之魂之运算符的优先级教程

文章目录 前言优先级概述相同优先级结合性运算符优先级一览表运算符优先级重点说明结语关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试资…

Windows核心编程 进程遍历与文件加密

目录 进程的遍历 CreateToolhelp32Snapshot Process32First Process32Next 文件加密 使用openssl库进行DES加密 进程的遍历 什么是快照:虚拟中的快照: 我们在分析病毒,分析木马的时候,不能在真机分析,在虚拟机中…

NX二次开发UF_CURVE_ask_curve_turn_angle 函数介绍

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_CURVE_ask_curve_turn_angle Defined in: uf_curve.h int UF_CURVE_ask_curve_turn_angle(tag_t curve, double orientation [ 3 ] , double * angle ) overview 概述 Returns …

希尔伯特变换-matlab仿真

希尔伯特变换(hilbert transform)简介 在信号处理中我们常见的有傅里叶变换,用来分析频域信息,还有拉普拉斯变换和z变换,用于系统分析系统响应。短时傅里叶分析和小波分析用于时频分析。希尔伯特变换似乎听到的比较少…

unigui同页面内重定向跳转,企业微信内部应用开发获取用户code例子

procedure TMainForm.UniFormCreate(Sender: TObject); varurl: string;code: string; begin //如果没有code值,将进行重定向if UniApplication.Parameters.Values[code] thenbeginurl :https://open.weixin.qq.com/connect/oauth2/authorize?appid你们的企业ID&…

基于springBoot+Vue的停车管理系统

开发环境 IDEA JDK1.8 MySQL8.0Node 系统简介 本项目为前后端分离项目,前端使用vue,后端使用SpringBoot开发,主要的功能有用户管理,停车场管理,充值收费,用户可以注册登录系统,自主充值和预…

中间件渗透测试-Server2131(解析+环境)

B-10:中间件渗透测试 需要环境的加qq 任务环境说明: 服务器场景:Server2131(关闭链接) 服务器场景操作系统:Linux Flag值格式:Flag{Xxxx123},括…

中职网安-Linux操作系统渗透测-Server2130(环境加qq)

B-9:Linux操作系统渗透测 任务环境说明:  服务器场景:Server2130  服务器场景操作系统:Linux(关闭链接) 1.通过本地PC中渗透测试平台Kali对靶机场景进行系统服务及版本扫描渗透测试,并将该操作显示结果中Apache服务对应的版本信息字符串作为Flag值提交; 2.…

UML建模图文详解教程08——部署图

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl本文参考资料:《UML面向对象分析、建模与设计(第2版)》吕云翔,赵天宇 著 部署图概述 部署图(deployment diagram)也被译作配置…

详细解答T-SNE程序中from sklearn.manifold import TSNE的数据设置,包括输入数据,绘制颜色的参数设置,代码复制可用!!

文章目录 前言——TSNE是t-Distributed Stochastic Neighbor Embedding的缩写1、可运行的T-SNE程序2. 实验结果3、针对上述程序我们详细分析T-SNE的使用方法3.1 加载数据3.2 TSNE降维3.3 绘制点3.4 关于颜色设置,颜色使用的标签数据的说明cy 总结 前言——TSNE是t-D…

针对String、StringBuffer、Stringbuilder区别及使用场景

可变性(Mutability): String: 字符串是不可变的。一旦创建了一个字符串对象,它的值就不能被修改。任何对字符串的操作实际上都是创建了一个新的字符串对象。 StringBuilder: 字符串生成器,是可…

stm32实现0.96oled图片显示,菜单功能

stm32实现0.96oled图片显示,菜单功能 功能展示简介代码介绍oled.coled.holedfont.h(字库文件)main函数 代码思路讲解 本期内容,我们将学习0.96寸oled的进阶使用,展示图片,实现菜单切换等功能,关…

【送书福利-第二十八期】《从概念到现实:ChatGPT和Midjourney的设计之旅》

😎 作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公粽号:程序员洲洲。 🎈 本文专栏:本文…

Flutter开发警告Constructors in ‘@immutable‘ classes should be declared as ‘const‘

文章目录 警告信息报错代码警告原因修改后的代码 警告信息 Flutter开发遇到如下警告 Constructors in ‘immutable’ classes should be declared as ‘const’. 报错代码 class TaskWidget extends StatefulWidget {final String title;final bool isChecked;final int ord…

MFIN 6201 Practice Question

MFIN 6201 Practice Question WeChat: ye1-6688

三菱PLC编码器转速测量功能块(梯形图和ST代码)

编码器转速测量功能块算法公式详细讲解请参考下面文章链接: SMART PLC编码器转速测量功能块(高速计数器配置+梯形图)-CSDN博客文章浏览阅读427次。里工业控制张力控制无处不在,也衍生出很多张力控制专用控制器,磁粉制动器等,本篇博客主要讨论PLC的张力控制相关应用和算法,…

【Netty专题】Netty调优及网络编程中一些问题补充(面向面试学习)

目录 前言阅读对象阅读导航笔记正文一、如何选择序列化框架1.1 基本介绍1.2 在网络编程中如何选择序列化框架1.3 常用Java序列化框架比较 二、Netty调优2.1 CONNECT_TIMEOUT_MILLIS:客户端连接时间2.2 SO_BACKLOG:最大同时连接数2.3 TCP_NODELAY&#xf…

【JavaEE初阶】Thread 类及常见方法、线程的状态

目录 1、Thread 类及常见方法 1.1 Thread 的常见构造方法 1.2 Thread 的几个常见属性 1.3 启动⼀个线程 - start() 1.4 中断⼀个线程 1.5 等待⼀个线程 - join() 1.6 获取当前线程引用 1.7 休眠当前线程 2、线程的状态 2.1 观察线程的所有状态 2.2 线程状态和状…