国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Flask數(shù)據(jù)庫之SQLAlchemy--介紹--鏈接數(shù)據(jù)庫

這篇具有很好參考價(jià)值的文章主要介紹了Flask數(shù)據(jù)庫之SQLAlchemy--介紹--鏈接數(shù)據(jù)庫。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

SQLAlchemy介紹

SQLAlchemy連接數(shù)據(jù)庫?


SQLAlchemy介紹

數(shù)據(jù)庫是一個(gè)網(wǎng)站的基礎(chǔ)?。?!

比如MySQL、MongoDB、SQLite、PostgreSQL等,這里我們以MySQL為例進(jìn)行講解。

SQLAlchemy是一個(gè)ORM框架

sqlalchemy 數(shù)據(jù)庫連接,# Flask框架,flask,數(shù)據(jù)庫,python

對象關(guān)系映射(英語:Object Relational Mapping,簡稱ORM,或O/RM,或O/R mapping),是一種程序設(shè)計(jì)技術(shù),用于實(shí)現(xiàn)面向?qū)ο缶幊陶Z言里不同類型系統(tǒng)的數(shù)據(jù)之間的轉(zhuǎn)換。

從效果上說,它其實(shí)是創(chuàng)建了一個(gè)可在編程語言里使用的“虛擬對象數(shù)據(jù)庫”。


大白話

對象模型與數(shù)據(jù)庫表的映射

為什么要有SQLAlchemy?

隨著項(xiàng)目的越來越大,采用寫原生SQL的方式在代碼中會出現(xiàn)大量重復(fù)的SQL語句,那么,問題就出現(xiàn)了:

  1. SQL語句重復(fù)利用率不高,越復(fù)雜的SQL語句條件越多,代碼越長,會出現(xiàn)很多相近的SQL語句
  2. 很多SQL語句 是在業(yè)務(wù)邏輯中拼接出來的,如果數(shù)據(jù)庫需要更改,就要去修改這些邏輯,這會容易漏掉對某些SQL語句的修改
  3. 寫SQL時(shí)容易忽略web安全問題,造成隱患

而ORM可以通過類的方式去操作數(shù)據(jù)庫而不用再寫原生的SQL語句,通過把映射成,把作為實(shí)例(一條數(shù)據(jù)),把字段作為屬性,ORM在執(zhí)行對象操作的時(shí)候最終還是會把對象的操作轉(zhuǎn)換為數(shù)據(jù)庫的原生語句,但使用ORM有許多優(yōu)點(diǎn):

  1. 易用性:使用ORM做數(shù)據(jù)庫開發(fā)可以有效減少重復(fù)SQL語句的概率,寫出來的模型也更加直觀、清晰
  2. 性能損耗小:ORM轉(zhuǎn)換成底層數(shù)據(jù)庫操作指令確實(shí)會有一些開銷。但是從實(shí)際情況來看,這種性能損耗很少(不足5%),只要不是針對性能有嚴(yán)苛的要求,綜合考慮開發(fā)效率、代碼閱讀性,帶來的好處遠(yuǎn)大于性能損耗,而且項(xiàng)目越大作用越明顯。
  3. 設(shè)計(jì)靈活:可以輕松的寫出復(fù)雜的查詢。
  4. 可移植性:SQLAlchemy封裝了底層的數(shù)據(jù)庫實(shí)現(xiàn),支持多個(gè)關(guān)系數(shù)據(jù)庫引擎,包括流行的Mysql、PostgreSQL和SQLite,可以非常輕松的切換數(shù)據(jù)庫。

使用ORM操作數(shù)據(jù)庫將變得非常簡單

class Person:
  name = 'xx'
  age = 18
  country ='xx'
  
# Person類 -> 數(shù)據(jù)庫中的一張表
# Person類中的屬性  -> 數(shù)據(jù)庫中一張表字段
# Person類的一個(gè)對象 -> 數(shù)據(jù)庫中表的一條數(shù)據(jù)


# p = Person('xx',xx)
# p.save()
# insert into table values ('xx',xx)

在操作數(shù)據(jù)庫操作之前,先確保你已經(jīng)安裝了以下軟件:

  • mysql

    • 如果是在windows上,到官網(wǎng)下載
  • pymysql:pymysql是用Python來操作mysql的包

    from sqlalchemy import create_engine
    
    pip install pymysql
  • SQLAlchemy:SQLAlchemy是一個(gè)數(shù)據(jù)庫的ORM框架,我們在后面會用到。

    pip install SQLAlchemy

SQLAlchemy連接數(shù)據(jù)庫?

首先要引入SQLAlchemy

from sqlalchemy import create_engine

接下來,需要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)庫引擎(engine)對象,它將負(fù)責(zé)與實(shí)際數(shù)據(jù)庫進(jìn)行通信。引擎對象的創(chuàng)建通常需要指定數(shù)據(jù)庫的連接字符串,該字符串包含了連接數(shù)據(jù)庫所需的信息(如用戶名、密碼、主機(jī)地址等)。

# 例如連接到一個(gè)名為'mydatabase'的SQLite數(shù)據(jù)庫
engine = create_engine('sqlite:///mydatabase.db')

如果要連接到其他類型的數(shù)據(jù)庫,連接字符串將有所不同。例如,連接到一個(gè)名為'mydatabase'的MySQL數(shù)據(jù)庫:?

engine = create_engine('mysql://username:password@localhost/mydatabase')

?中間為數(shù)據(jù)庫的變量:

def conn_db1():
  # 數(shù)據(jù)庫的變量
  HOST = '192.168.30.151' # 127.0.0.1/localhost
  PORT = 3306
  DATA_BASE = 'flask_db'
  USER = 'root'
  PWD = '123'

一個(gè)基本框架:

from sqlalchemy import create_engine


def conn_db1():
  # 數(shù)據(jù)庫的變量
  HOST = '192.168.30.151' # 127.0.0.1/localhost
  PORT = 3306
  DATA_BASE = 'flask_db'
  USER = 'root'
  PWD = '123'


  # DB_URI = f'數(shù)據(jù)庫的名+驅(qū)動名://{USER}:{PWD}@{HOST}:{PORT}/{DATA_BASE}'
  DB_URI = f'mysql+pymysql://{USER}:{PWD}@{HOST}:{PORT}/{DATA_BASE}'


  engine = create_engine(DB_URI)
  # 執(zhí)行一個(gè)SQL
  sql = 'select 2;'
  conn = engine.connect()
  rs = conn.execute(sql)
  print(rs.fetchone())

逐條代碼解釋:

?文章來源地址http://www.zghlxwxcb.cn/news/detail-731767.html

  1. from sqlalchemy import create_engine: 這行導(dǎo)入了create_engine函數(shù),它是SQLAlchemy提供的用于創(chuàng)建數(shù)據(jù)庫引擎的函數(shù)。

  2. def conn_db1():: 這是一個(gè)Python函數(shù)的定義,函數(shù)名為conn_db1。

  3. 下面的一系列變量定義了連接到數(shù)據(jù)庫所需的信息,包括主機(jī)地址(HOST)、端口號(PORT)、數(shù)據(jù)庫名(DATA_BASE)、用戶名(USER)和密碼(PWD)。

  4. DB_URI = f'mysql+pymysql://{USER}:{PWD}@{HOST}:{PORT}/{DATA_BASE}': 這行代碼構(gòu)建了一個(gè)數(shù)據(jù)庫連接字符串(DB_URI),它包括了數(shù)據(jù)庫類型(mysql)、用戶名、密碼、主機(jī)地址、端口號以及數(shù)據(jù)庫名。

  5. engine = create_engine(DB_URI): 這行代碼使用create_engine函數(shù)創(chuàng)建了一個(gè)數(shù)據(jù)庫引擎(engine),該引擎將用于與數(shù)據(jù)庫進(jìn)行交互。

  6. sql = 'select 2;': 這行代碼定義了一個(gè)簡單的SQL查詢語句,它將返回?cái)?shù)字2。

  7. conn = engine.connect(): 這行代碼使用數(shù)據(jù)庫引擎建立了一個(gè)連接(conn)。

  8. rs = conn.execute(sql): 這行代碼使用連接執(zhí)行了之前定義的SQL查詢語句,并將結(jié)果賦給了變量rs。

  9. print(rs.fetchone()): 這行代碼使用fetchone()方法從查詢結(jié)果中獲取了一行數(shù)據(jù),并將其打印出來。

?

到了這里,關(guān)于Flask數(shù)據(jù)庫之SQLAlchemy--介紹--鏈接數(shù)據(jù)庫的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • flask中的操作數(shù)據(jù)庫的插件Flask-SQLAlchemy

    flask中的操作數(shù)據(jù)庫的插件Flask-SQLAlchemy

    Web 開發(fā)中,一個(gè)重要的組成部分便是數(shù)據(jù)庫了。Web 程序中最常用的莫過于關(guān)系型數(shù)據(jù)庫了,也稱 SQL 數(shù)據(jù)庫。另外,文檔數(shù)據(jù)庫(如 mongodb)、鍵值對數(shù)據(jù)庫(如 redis)近幾年也逐漸在 web 開發(fā)中流行起來,我們習(xí)慣把這兩種數(shù)據(jù)庫稱為 NoSQL 數(shù)據(jù)庫。 大多數(shù)的關(guān)系型數(shù)據(jù)庫引

    2024年02月09日
    瀏覽(33)
  • 大白話說Python+Flask入門(六)Flask SQLAlchemy操作mysql數(shù)據(jù)庫

    大白話說Python+Flask入門(六)Flask SQLAlchemy操作mysql數(shù)據(jù)庫

    這篇文章被擱置真的太久了,不知不覺拖到了周三了,當(dāng)然,也算跟falsk系列說再見的時(shí)候,真沒什么好神秘的,就是個(gè)數(shù)據(jù)庫操作,就大家都知道的 CRUD 吧。 1、Flask SQLAlchemy簡介 Flask SQLAlchemy 是基于 Flask web 框架和 SQLAlchemy ORM (對象關(guān)系映射)的工具。它旨在為 Flask web 應(yīng)用

    2024年02月05日
    瀏覽(31)
  • 如何使用Flask-SQLAlchemy來管理數(shù)據(jù)庫連接和操作數(shù)據(jù)?

    首先,我們需要安裝Flask-SQLAlchemy。你可以使用pip來安裝它,就像這樣: 好了,現(xiàn)在我們已經(jīng)有了一個(gè)可以操作數(shù)據(jù)庫的工具,接下來讓我們來看看如何使用它吧! 首先,我們需要?jiǎng)?chuàng)建一個(gè)Flask應(yīng)用對象,并配置數(shù)據(jù)庫的連接字符串和師: 現(xiàn)在,我們已經(jīng)創(chuàng)建了一個(gè)數(shù)據(jù)庫,

    2024年02月15日
    瀏覽(46)
  • 【python】flask操作數(shù)據(jù)庫工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn)

    【python】flask操作數(shù)據(jù)庫工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn)

    ?? 歡迎大家來到景天科技苑?? ???? 養(yǎng)成好習(xí)慣,先贊后看哦~???? ?? 作者簡介:景天科技苑 ??《頭銜》:大廠架構(gòu)師,華為云開發(fā)者社區(qū)專家博主,阿里云開發(fā)者社區(qū)專家博主,CSDN全棧領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,掘金優(yōu)秀博主,51CTO博客專家等。 ??《博客》:Python全棧,

    2024年04月17日
    瀏覽(31)
  • python:使用Flask-SQLAlchemy對數(shù)據(jù)庫增刪改查的簡單示例

    python:使用Flask-SQLAlchemy對數(shù)據(jù)庫增刪改查的簡單示例

    以下將介紹Flask-SQLAlchemy對數(shù)據(jù)庫增刪改查的簡單示例。 一、安裝所需的庫 pip install flask flask-sqlalchemy flask-mysql 二、創(chuàng)建數(shù)據(jù)表 本示例使用mysql創(chuàng)建數(shù)據(jù)庫和表 CREATE TABLE `user` ( ? `id` int(11) NOT NULL AUTO_INCREMENT, ? `name` varchar(255) DEFAULT NULL, ? `age` int(11) DEFAULT NULL, ? PRIMARY KEY (`id

    2024年02月07日
    瀏覽(36)
  • python Flask項(xiàng)目使用SQLalchemy連接數(shù)據(jù)庫時(shí),出現(xiàn)RuntimeError:Working outside of application context.的解決過程記錄

    在使用python的Flask框架跟著教程編寫項(xiàng)目時(shí),我跟著教程使用了三個(gè)文件來組織,分別是main.py(主程序),module.py(數(shù)據(jù)庫模型),controller.py(藍(lán)圖模塊程序,用Blueprint銜接) 在主程序中,創(chuàng)建app、SQLalchemy實(shí)例對象db并將二者綁定 在module.py中,導(dǎo)入主程序中的db和app,創(chuàng)建

    2024年02月09日
    瀏覽(22)
  • Python與SQLAlchemy:輕松管理數(shù)據(jù)庫

    Python與SQLAlchemy:輕松管理數(shù)據(jù)庫

    在這篇文章中,我們將學(xué)習(xí)如何使用Python和SQLAlchemy庫來輕松管理數(shù)據(jù)庫。SQLAlchemy是一個(gè)強(qiáng)大的ORM(對象關(guān)系映射)庫,它允許您通過Python代碼與關(guān)系型數(shù)據(jù)庫進(jìn)行交互,而無需編寫SQL語句。 一、安裝SQLAlchemy 首先,確保您已經(jīng)安裝了Python。然后,使用以下命令安裝SQLAlchemy庫

    2024年02月19日
    瀏覽(20)
  • Flask從入門到放棄五(SQLAlchemy介紹與快速使用、創(chuàng)建表插入數(shù)據(jù)、Scoped_session線程安全、基本增刪查改、表模型、Flask-SQLAlchemy、Migrate的使用)

    Flask從入門到放棄五(SQLAlchemy介紹與快速使用、創(chuàng)建表插入數(shù)據(jù)、Scoped_session線程安全、基本增刪查改、表模型、Flask-SQLAlchemy、Migrate的使用)

    SQLAlchemy是一個(gè)基于Python實(shí)現(xiàn)的ORM框架。該框架建立在 DB API之上,使用關(guān)系對象映射進(jìn)行數(shù)據(jù)庫操作,簡言之便是:將類和對象轉(zhuǎn)換成SQL,然后使用數(shù)據(jù)API執(zhí)行SQL并獲取執(zhí)行結(jié)果。 SQLAlchemy的組成部分有: Engine 框架的引擎 Connection Pooling 數(shù)據(jù)庫連接池 Dialect 選擇連接數(shù)據(jù)庫的

    2024年02月04日
    瀏覽(26)
  • 【Django】forms使用sqlalchemy生成數(shù)據(jù)庫中下拉列表數(shù)據(jù)

    Django從表單中獲取數(shù)據(jù) 一種更簡單的方法來實(shí)現(xiàn)所需的功能是ARRAY直接在查詢中使用SQL (如果數(shù)據(jù)庫支持) get_field_value_list()是一個(gè)查詢模型以獲取下拉選項(xiàng)列表的函數(shù), ChoiceField需要一個(gè)元組才能正常工作,field是我在下拉列表中想要的值 . 再init 方法設(shè)置choices 取值ge

    2024年02月12日
    瀏覽(29)
  • SQLAlchemy ORM指南:簡化數(shù)據(jù)庫操作的最佳實(shí)踐

    SQLAlchemy ORM指南:簡化數(shù)據(jù)庫操作的最佳實(shí)踐

    背景: ? SQLAlchemy是一個(gè)數(shù)據(jù)庫的ORM框架,讓我們操作數(shù)據(jù)庫的時(shí)候不要再用SQL語句了,跟直接操作模型一樣。操作十分便捷,其實(shí)SQLAlchemy應(yīng)該是在Flask和Django應(yīng)用的特別多,而且在flask中已經(jīng)集成了flask_sqlalchemy ,好像是 SQLAlchemy的作者和 Flask是同一個(gè),背景了解到這里就可

    2024年01月20日
    瀏覽(57)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包