日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

發布時間:2023/12/4 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 eclipse连接mysql_专题一、flask构建mysql数据库正确姿势 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
每周壹總結,一起共同充電第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__代表表名,不寫的話默認類名的小寫字母為表名。然后再是依次每個表字段的定義。

常用的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()

即可輕松新建數據表,當然數據庫需要提前建好。

分享也是自我的一次提升

阿里面試/崗位交流

免費領取例子腳本和代碼

免費PMP考試資料

免費python學習資料

掃一掃,加小T

專題推薦


●?jmeter實時可視化圖表化(高級)

●?jmeter5.0源碼在eclipse正確打開方式

●?jmeter+Jenkins性能測試自動化搭建

●?jmeter+Jenkins性能測試高級用法(番外篇)

●?jmeter的websocket接口性能測試

●?jmeter工作實戰心法-高級需求(附福利)

●?jmeter工作實戰心法-必備技能(附贈小技巧)

●?jmeter測試mongodb,必會,高級知識

●?jmeter?tcp腳本的核心知識點理解

●?jmeter?beanshell腳本如何編寫2個例子

●?jmeter?如何一步步擴展自己的函數

●?jmeter?正則表達式應用

●?新人如何學習性能測試

●?性能測試利劍-微服務的分布式追蹤

●?python如何和java高效的交互

總結

以上是生活随笔為你收集整理的eclipse连接mysql_专题一、flask构建mysql数据库正确姿势的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。