python使用sqlalchemy連接mysql數(shù)據(jù)庫(kù)

sqlalchemy是python當(dāng)中比較出名的orm程序。

什么是orm臭埋?

orm英文全稱object relational mapping,就是對(duì)象映射關(guān)系程序,簡(jiǎn)單來(lái)說(shuō)我們類似python這種面向?qū)ο蟮某绦騺?lái)說(shuō)一切皆對(duì)象,但是我們使用的數(shù)據(jù)庫(kù)卻都是關(guān)系型的务漩,為了保證一致的使用習(xí)慣,通過(guò)orm將編程語(yǔ)言的對(duì)象模型和數(shù)據(jù)庫(kù)的關(guān)系模型建立映射關(guān)系它褪,這樣我們?cè)谑褂镁幊陶Z(yǔ)言對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作的時(shí)候可以直接使用編程語(yǔ)言的對(duì)象模型進(jìn)行操作就可以了饵骨,而不用直接使用sql語(yǔ)言。

什么是sqlalchemy?

sqlalchemy是python的orm程序茫打,在整個(gè)python界當(dāng)中相當(dāng)出名居触。

安裝sqlalchemy

在使用sqlalchemy之前要先給python安裝mysql驅(qū)動(dòng)妖混,由于我使用的是python3原來(lái)的mysqldb不可用,所以這里推薦使用pymysql轮洋。
我們通過(guò)pip進(jìn)行安裝,在windows下使用pip安裝包的時(shí)候要記得使用管理員身份運(yùn)行cmd不然有些操作是無(wú)法進(jìn)行的制市。

pip install pymysql

安裝完以后安裝再安裝sqlalchemy

pip install sqlalchemy

如何使用sqlalchemy連接mysql?

通過(guò)import導(dǎo)入必要的包

from sqlalchemy import create_engine,Table,Column,Integer,String,MetaData,ForeignKey

創(chuàng)建一個(gè)連接引擎

engine=create_engine("mysql+pymysql://root:a5230411@localhost:3306/test",echo=True)

我們將連接引擎放到engine里面方便后面使用。
create_engine("數(shù)據(jù)庫(kù)類型+數(shù)據(jù)庫(kù)驅(qū)動(dòng)://數(shù)據(jù)庫(kù)用戶名:數(shù)據(jù)庫(kù)密碼@IP地址:端口/數(shù)據(jù)庫(kù)"弊予,其他參數(shù))
上文當(dāng)中echo=True是開(kāi)啟調(diào)試祥楣,這樣當(dāng)我們執(zhí)行文件的時(shí)候會(huì)提示相應(yīng)的文字。

創(chuàng)建元數(shù)據(jù)

什么是元數(shù)據(jù)汉柒?元數(shù)據(jù)就是描述數(shù)據(jù)的數(shù)據(jù)荣堰,舉個(gè)簡(jiǎn)單的例子,小明身高170cm竭翠,體重50kg振坚,性別男。其中身高斋扰,體重渡八,性別就是元數(shù)據(jù)。當(dāng)我們創(chuàng)建好連接引擎以后可以通過(guò)這個(gè)引擎抓取元數(shù)據(jù)传货。

metadata=MetaData(engine)

通過(guò)MetaData()方法創(chuàng)建了metadata實(shí)例屎鳍,在這個(gè)方法里面帶上engine的目的是綁定要連接引擎,當(dāng)我們對(duì)這個(gè)metadata實(shí)例進(jìn)行操作的時(shí)候就會(huì)直接連接到數(shù)據(jù)庫(kù)问裕。

添加表結(jié)構(gòu)

設(shè)定好連接引擎和元數(shù)據(jù)逮壁,讓我們向mysql里面創(chuàng)建表結(jié)構(gòu)來(lái)進(jìn)行測(cè)試。

user=Table('user',metadata,
    Column('id',Integer,primary_key=True),
    Column('name',String(20)),
    Column('fullname',String(40)),
    )
address_table = Table('address', metadata,
    Column('id', Integer, primary_key=True),
    Column('user_id', None, ForeignKey('user.id')),
    Column('email', String(128), nullable=False)
    )

其中Table()方法用來(lái)創(chuàng)建表粮宛,第一個(gè)參數(shù)為表明窥淆,第二是存入元數(shù)據(jù),后面的參數(shù)使用Column()方法將數(shù)據(jù)庫(kù)當(dāng)中每一個(gè)字段的數(shù)據(jù)參數(shù)設(shè)置好巍杈。

執(zhí)行創(chuàng)建

metadata.create_all()

因?yàn)橐褜⒈斫Y(jié)構(gòu)存到了metadata里面忧饭,然后讓metadata執(zhí)行create_all()方法,這樣就向數(shù)據(jù)庫(kù)里創(chuàng)建了user和address表筷畦。

完成代碼

from sqlalchemy import create_engine,Table,Column,Integer,String,MetaData,ForeignKey
engine=create_engine("mysql+pymysql://root:a5230411@localhost:3306/test",echo=True)
metadata=MetaData(engine)

user=Table('user',metadata,
    Column('id',Integer,primary_key=True),
    Column('name',String(20)),
    Column('fullname',String(40)),
    )
address_table = Table('address', metadata,
    Column('id', Integer, primary_key=True),
    Column('user_id', None, ForeignKey('user.id')),
    Column('email', String(128), nullable=False)
    )

metadata.create_all()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末词裤,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子鳖宾,更是在濱河造成了極大的恐慌吼砂,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,817評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鼎文,死亡現(xiàn)場(chǎng)離奇詭異渔肩,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)漂问,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門赖瞒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人蚤假,你說(shuō)我怎么就攤上這事栏饮。” “怎么了磷仰?”我有些...
    開(kāi)封第一講書人閱讀 157,354評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵袍嬉,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我灶平,道長(zhǎng)伺通,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 56,498評(píng)論 1 284
  • 正文 為了忘掉前任逢享,我火速辦了婚禮罐监,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘瞒爬。我一直安慰自己弓柱,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布侧但。 她就那樣靜靜地躺著矢空,像睡著了一般。 火紅的嫁衣襯著肌膚如雪禀横。 梳的紋絲不亂的頭發(fā)上屁药,一...
    開(kāi)封第一講書人閱讀 49,829評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音柏锄,去河邊找鬼酿箭。 笑死,一個(gè)胖子當(dāng)著我的面吹牛趾娃,可吹牛的內(nèi)容都是我干的七问。 我是一名探鬼主播,決...
    沈念sama閱讀 38,979評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼茫舶,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼械巡!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起饶氏,我...
    開(kāi)封第一講書人閱讀 37,722評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤讥耗,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后疹启,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體古程,經(jīng)...
    沈念sama閱讀 44,189評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評(píng)論 2 327
  • 正文 我和宋清朗相戀三年喊崖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了挣磨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片雇逞。...
    茶點(diǎn)故事閱讀 38,654評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖茁裙,靈堂內(nèi)的尸體忽然破棺而出塘砸,到底是詐尸還是另有隱情,我是刑警寧澤晤锥,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布掉蔬,位于F島的核電站,受9級(jí)特大地震影響矾瘾,放射性物質(zhì)發(fā)生泄漏女轿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評(píng)論 3 313
  • 文/蒙蒙 一壕翩、第九天 我趴在偏房一處隱蔽的房頂上張望蛉迹。 院中可真熱鬧,春花似錦放妈、人聲如沸婿禽。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,762評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)扭倾。三九已至,卻和暖如春挽绩,著一層夾襖步出監(jiān)牢的瞬間膛壹,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,993評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工唉堪, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留模聋,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,382評(píng)論 2 360
  • 正文 我出身青樓唠亚,卻偏偏與公主長(zhǎng)得像链方,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子灶搜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容