eclipse连接mysql_专题一、flask构建mysql数据库正确姿势

58c52a3957c08702c648f6c33d2837a3.pnga1140ebbbf838e9f4a879517c648a60f.png每周壹总结,一起共同充电第121篇

应用程序最核心的就是数据,每天我们写程序其实也是在处理数据的过程,那么很有必要系统性的讲讲和梳理python的flask框架是如何进行数据交互操作的。

趁这3天假期,分4篇内容来系统的讲讲,今天先分享第一篇。

一、flask构建mysql数据库的正确姿势。

二、flask常用的增删改查用法。

三、flask数据的一对多和多对多的关联查询。

四、flask实战的迁移数据库

1、SQLAlchemy

Flask中最方便用的数据库框架是 flask_sqlalchamy,是对 SQLAlchamy 在 Flask 中的扩展, SQLAlchemy 是一个 Python 数据库工具(ORM,即对象关系映射)。

使用扩展包flask-sqlalchemy来操作数据库(增删改查),通过 Python 对象来操作数据库,在舍弃一些性能开销的同时,换来的是开发效率的较大提升。可以让我们操作数据库跟操作对象是一样的,非常方便,因为一个表就抽象成一个类,一条数据就抽象成该类的一个对象。

2、安装

pip install flask_sqlalchamy

安装之后,导入到项目中,对应用进行初始化:

from flask_sqlalchamy import SQLAlchamy  # 导入 SQLAlachamy

3、连接数据库

最常用的是mysql,最好的方式是写在configure里面,然后在flask的app主文件中通过app.config.from_object(configure)加载即可。

#配置mysql数据库

DIALECT = 'mysql' # 要用的什么数据库

DRIVER = 'pymysql' # 连接数据库驱动

USERNAME = 'root'

PASSWORD = 'XXXX'

HOST = 'XXXXX'

PORT = '3306'

DATABASE = 'hutong'

SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALECT, DRIVER, USERNAME, PASSWORD, HOST, PORT,DATABASE)

数据库的其他配置

名字备注
SQLALCHEMY_DATABASE_URI用于连接的数据库 URI 。例如:sqlite:tmp/test.dbmysql://username:password@server/db
SQLALCHEMY_BINDS一个映射 binds 到连接 URI 的字典。更多 binds 的信息见用 Binds 操作多个数据库。
SQLALCHEMY_ECHO如果设置为Ture, SQLAlchemy 会记录所有 发给 stderr 的语句,这对调试有用。(打印sql语句)
SQLALCHEMY_RECORD_QUERIES可以用于显式地禁用或启用查询记录。查询记录 在调试或测试模式自动启用。更多信息见get_debug_queries()。
SQLALCHEMY_NATIVE_UNICODE可以用于显式禁用原生 unicode 支持。当使用 不合适的指定无编码的数据库默认值时,这对于 一些数据库适配器是必须的(比如 Ubuntu 上 某些版本的 PostgreSQL )。
SQLALCHEMY_POOL_SIZE数据库连接池的大小。默认是引擎默认值(通常 是 5 )
SQLALCHEMY_POOL_TIMEOUT设定连接池的连接超时时间。默认是 10 。
SQLALCHEMY_POOL_RECYCLE多少秒后自动回收连接。这对 MySQL 是必要的, 它默认移除闲置多于 8 小时的连接。注意如果 使用了 MySQL , Flask-SQLALchemy 自动设定 这个值为 2 小时。

4、构建模型

假设需要构建一张表Article,如下,新建单独一个python文件,放在models目录下,使用Flask-SQLAlchemy创建模型与表的映射:

模型需要继承自db.Model,然后需要映射到表中的属性,必须写成db.Column的数据类型。该类继承自db.Model,__tablename__代表表名,不写的话默认类名的小写字母为表名。然后再是依次每个表字段的定义。

7797988b89c47389a144950433e0d368.png

常用的SQLAlchemy字段类型

类型名python中类型说明
Integerint普通整数,一般是32位
SmallIntegerint取值范围小的整数,一般是16位
BigIntegerint或long不限制精度的整数
Floatfloat浮点数
Numericdecimal.Decimal普通整数,一般是32位
Stringstr变长字符串
Textstr变长字符串,对较长或不限长度的字符串做了优化
Unicodeunicode变长Unicode字符串
UnicodeTextunicode变长Unicode字符串,对较长或不限长度的字符串做了优化
Booleanbool布尔值
Datedatetime.date时间
Timedatetime.datetime日期和时间
LargeBinarystr二进制文件

常用的SQLAlchemy列选项

选项名说明
primary_key如果为True,代表表的主键
unique如果为True,代表这列不允许出现重复的值
index如果为True,为这列创建索引,提高查询效率
nullable如果为True,允许有空值,如果为False,不允许有空值
autoincrement代表的是这个主键为自增长的。
default为这列定义默认值

Flask中使用flask-sqlalchemy时db.create_all()无法创建表

1、导入from flask_demo.models import Role, User  # 导入模型类

2、添加应用上下文

3、with app.app_context():

4、db.create_all()

即可轻松新建数据表,当然数据库需要提前建好。

90ffa8977910cb90bc2db488b567ac13.png

dfcb6151df5006261043c355ff831839.png

分享也是自我的一次提升

阿里面试/岗位交流

免费领取例子脚本和代码

免费PMP考试资料

免费python学习资料

扫一扫,加小T

e8b923d279124b547775b8b63a5834e2.png

专题推荐


● jmeter实时可视化图表化(高级)

● jmeter5.0源码在eclipse正确打开方式

● jmeter+Jenkins性能测试自动化搭建

● jmeter+Jenkins性能测试高级用法(番外篇)

● jmeter的websocket接口性能测试

● jmeter工作实战心法-高级需求(附福利)

● jmeter工作实战心法-必备技能(附赠小技巧)

● jmeter测试mongodb,必会,高级知识

● jmeter tcp脚本的核心知识点理解

● jmeter beanshell脚本如何编写2个例子

● jmeter 如何一步步扩展自己的函数

● jmeter 正则表达式应用

● 新人如何学习性能测试

● 性能测试利剑-微服务的分布式追踪

● python如何和java高效的交互

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#多线程和异步(二)——Task和async/await详解

一、什么是异步同步和异步主要用于修饰方法。当一个方法被调用时,调用者需要等待该方法执行完毕并返回才能继续执行,我们称这个方法是同步方法;当一个方法被调用时立即返回,并获取一个线程执行该方法内部的业务,调用者…

从头到尾彻底理解傅里叶变换算法(上)

从头到尾彻底理解傅里叶变换算法(上) 前言 第一部分、 DFT 第一章、傅立叶变换的由来 第二章、实数形式离散傅立叶变换(Real DFT) 从头到尾彻底理解傅里叶变换算法、下 第三章、复数 第四章、复数形式离散傅立叶变换 前言&#x…

使用ADO.NET的参数集合来有效防止SQL注入漏洞

SQL注入漏洞是个老话题了,在以前做ASP做开发时,就经常需要用字符串的过虑等方式来解决这个问题,但有时候确做的不够彻底,往往让***钻了空子。那么目前在我们.NET中,不管是用WINFORM开发还是用WEBFORM,连接数…

[Abp 源码分析]ASP.NET Core 集成

点击上方蓝字关注我们0. 简介整个 Abp 框架最为核心的除了 Abp 库之外,其次就是 Abp.AspNetCore 库了。虽然 Abp 本身是可以用于控制台程序的,不过那样的话 Abp 就基本没什么用,还是需要集合 ASP.NET Core 才能发挥它真正的作用。在 Abp.AspN…

从头到尾彻底理解傅里叶变换算法(下)

从头到尾彻底理解傅里叶变换算法(上),请看今天第一条。 以下继续: 第三章、复数 复数扩展了我们一般所能理解的数的概念,复数包含了实数和虚数两部分,利用复数的形式可以把由两个变量表示的表达式变成由一个…

树莓派安装python3.5_梦见树_周公解梦梦到树是什么意思_做梦梦见树好不好_周公解梦官网...

梦见树是什么意思?做梦梦见树好不好?梦见树有现实的影响和反应,也有梦者的主观想象,请看下面由(周公解梦官网www.zgjm.org)小编帮你整理的梦见树的详细解说吧。树主健康,树笔直挺拔,象征着人的健康。 在梦中…

[Abp 源码分析]后台作业与后台工作者

点击上方蓝字关注我们0. 简介在某些时候我们可能会需要执行后台任务,或者是执行一些周期性的任务。比如说可能每隔 1 个小时要清除某个临时文件夹内的数据,可能用户会要针对某一个用户群来群发一组短信。前面这些就是典型的应用场景,在 Abp 框…

【转】x.509证书在WCF中的应用(CS篇)

【转自】x.509证书在WCF中的应用(CS篇) 为什么要用x.509证书? WCF的服务端和客户端之间&#xff0c;如 果不作任何安全处理(即服务端的<security mode"None">)&#xff0c;则所有传输的消息将以明文方式满天飞&#xff0c;在internet/intranet环境下无疑是很不…

从概念到案例:初学者须知的十大机器学习算法

本文先为初学者介绍了必知的十大机器学习&#xff08;ML&#xff09;算法&#xff0c;并且我们通过一些图解和实例生动地解释这些基本机器学习的概念。我们希望本文能为理解机器学习基本算法提供简单易读的入门概念。 机器学习模型 在《哈佛商业评论》发表「数据科学家是 21 世…

测试Live Write的插件

1、文字竖排&#xff1a; 删除&#xff0c;只因首页显示时太占空间。2、酷表情&#xff1a;3、Rhapsody SongI am listening to Sad Songs And Waltzes by Cake . Rhapsody.

手把手教你用7行代码实现微信聊天机器人 -- Python wxpy

环境要求&#xff1a; Windows / Linux / Mac OS Python 3.4-3.6&#xff0c;以及 2.7 版本 wxpy安装 ## 使用国内源安装速度快 pip install -U wxpy -i "https://pypi.doubanio.com/simple/" 实例 让机器人与所有好友聊天 from wxpy import * # 实例化&#xff0c;并…

Dapr 已在塔架就位 将发射新一代微服务

微服务是云原生架构的核心&#xff0c;通常使用Kubernetes 来按需管理服务扩展。微软一直走在 Cloud Native Computing Foundation的 最前沿&#xff0c;并通过使用Kubernetes来支持其超大规模Azure和其混合云Azure Stack&#xff0c;微软对云原生的投资一部分来自其工具&#…

python 复制文件_10 行 Python 代码写 1 个 USB 病毒

(给Python开发者加星标&#xff0c;提升Python技能)转自&#xff1a; 知乎-DeepWeaver昨天在上厕所的时候突发奇想&#xff0c;当你把usb插进去的时候&#xff0c;能不能自动执行usb上的程序。查了一下&#xff0c;发现只有windows上可以&#xff0c;具体的大家也可以搜索(搜索…

html5中外描边怎么写,CSS3实现文字描边的2种方法(小结)

问题最近遇到一个需求&#xff0c;需要实现文字的描边效果&#xff0c;如下图解决方法一首先想到去看CSS3有没有什么属性可以实现&#xff0c;后来被我找到了text-stroke该属性是一个复合属性&#xff0c;可以设置文字宽度和文字描边颜色该属性使用很简单&#xff1a;text-stro…

混凝土墙开洞_满城混凝土柱子切割资质齐全

满城混凝土柱子切割资质齐全专业楼板切割开洞&#xff0c;钢筋混凝土墙开门&#xff0c;开窗&#xff0c;开方洞。混泥土承重墙新开门洞、开窗、通风管道开洞、专业开楼梯口&#xff0c;楼梯口加固&#xff0c;地下室开门洞&#xff0c;水泥墙开门加固、楼板加固、砖墙开门开窗…

马云害怕的事还是发生了

当前&#xff0c;余额宝的收益维持在4%左右不能突破&#xff0c;只能用作“钱包”放点零钱了。 放银行或者余额宝收益偏低&#xff0c;股票市场又处于震荡周期&#xff0c;期货市场等不是普通人进得去的&#xff0c;还不如直接买较高收益的互联网理财产品。 比如屡受政策利好…

cmosfixr插件怎么用_3dmax插件神器|怎么用3dmax插件神器去完成背景墙的效果图设计?...

又到3dmax插件神器的小课堂时间了&#xff01;小伙伴们还记得之前几张的知识点吗&#xff1f;如果不记得自己去温习&#xff0c;温故而知新哦&#xff01;如果学会了&#xff0c;下面学习3dmax插件神器小技巧的第四章建模篇的第4.16小节&#xff1a;怎么用3dmax插件神器去完成背…

不懂这25个名词,好意思说你懂大数据?

如果你刚接触大数据&#xff0c;你可能会觉得这个领域很难以理解&#xff0c;无从下手。近日&#xff0c;Ramesh Dontha在DataConomy上连发两篇文章&#xff0c;扼要而全面地介绍了关于大数据的75个核心术语&#xff0c;这不仅是大数据初学者很好的入门资料&#xff0c;对于高阶…

ab压力测试_Apache ab压力测试的知识点

Apache-ab是著名的Web服务器软件Apache附带的一个小工具&#xff0c;它可以模拟多个并发请求&#xff0c;测试服务器的最大承载压力。ab 是apachebench的缩写,ab命令会创建多个并发访问线程&#xff0c;模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的&…

现代云原生设计理念

前文传送门什么是云原生&#xff1f;现代设计理念你会如何设计云原生应用程序&#xff1f;需要遵循哪些原则、模式和最佳实践&#xff1f;需要特别关注哪些底层/操作&#xff1f;十二要素应用程序目前被普遍认可的基于云的方法论是"十二要素应用程序"&#xff0c;它给…