最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python的SQLalchemy模塊連接與操作MySQL的基礎(chǔ)示例

 更新時間:2016年07月11日 15:30:34   作者:linda1000  
SQLalchemy是Python世界中驅(qū)動MySQL的一款高人氣模塊,這里我們從入門開始來看一下Python的SQLalchemy模塊連接與操作MySQL的基礎(chǔ)示例:

一、SQLalchemy簡介
SQLAlchemy是一個開源的SQL工具包,基本Python編程語言的MIT許可證而發(fā)布的對象關(guān)系映射器。SQLAlchemy提供了“一個熟知的企業(yè)級全套持久性模式,使用ORM等獨立SQLAlchemy的一個優(yōu)勢在于其允許開發(fā)人員首先考慮數(shù)據(jù)模型,并能決定稍后可視化數(shù)據(jù)的方式。
二、SQLAlchempy的安裝
首先需安裝mysql,這里就不再多說了.....
然后,下載SQLAlchemy(http://www.sqlalchemy.org/download.html),這里我們以Windows系統(tǒng)為例,然后打開cmd,在安裝包文件目錄下,運行

python setup.py install

,通過python下輸入

import sqlalchemy

,執(zhí)行未報錯則表示安裝成功
 
三、SQLAlchemy的使用實例

1、完成簡單數(shù)據(jù)表信息查詢

# 1. 導(dǎo)入模塊
from sqlalchemy import *
from sqlclchemy.orm import *
# 2. 建立數(shù)據(jù)庫引擎
mysql_engine = create_engine("$address", echo, module)
 #address 數(shù)據(jù)庫://用戶名:密碼(沒有密碼則為空)@主機名:端口/數(shù)據(jù)庫名
 #echo標(biāo)識用于設(shè)置通過python標(biāo)準(zhǔn)日志模塊完成的SQLAlchemy日志系統(tǒng),當(dāng)開啟日志功能,我們將能看到所有的SQL生成代碼
# 3. 建立連接
connection = mysql_engine.connect()
# 4. 查詢表信息
result = connection.execute("select name from t_name)
for row in result:
 print "name: ", row['name']
# 5. 關(guān)閉連接
connection.close()

 
2、插入新的數(shù)據(jù)表

# 1. 導(dǎo)入模塊
from sqlalchemy import *
from sqlclchemy.orm import *
# 2. 建立數(shù)據(jù)庫引擎
mysql_engine = create_engine("$address", echo, module)
 #address 數(shù)據(jù)庫://用戶名:密碼(沒有密碼則為空)@主機名:端口/數(shù)據(jù)庫名
 #echo標(biāo)識用于設(shè)置通過python標(biāo)準(zhǔn)日志模塊完成的SQLAlchemy日志系統(tǒng),當(dāng)開啟日志功能,我們將能看到所有的SQL生成代碼
# 3. 設(shè)置metadata并將其綁定到數(shù)據(jù)庫引擎
metadata = Metadata(mysql_engine)
# 4. 定義需新建的表
users = Table('users', metadata,Column('user_id', Integer, primary_key=True),
 Column('name', String(40)),
 Column('age', Integer),
 Column('password', String),)
 #Table實現(xiàn)方式與SQL語言中的CRETE TABLE類似
# 5. 在數(shù)據(jù)庫中創(chuàng)建表
metadata.create_all(mysql_engine)
 #向數(shù)據(jù)庫發(fā)出CREATE TABLE命令,由此數(shù)據(jù)庫新建名為users的表
 #調(diào)用時會檢查已經(jīng)存在的表結(jié)構(gòu),因此可重復(fù)調(diào)用
# 6. 創(chuàng)建一個與數(shù)據(jù)庫中的users表匹配的python類
class user():
 def __int__(self, name, fullname, password):
 self.name = name
 self.fullname = fullname
 self.passwd = passwd
 #python類的屬性需與users表的列名一致
# 7. 設(shè)置映射
from sqlalchemy.orm import mapper
mapper(user, users)
 # mapper()創(chuàng)建一個新的Mapper對象,與定義的類相關(guān)聯(lián)
#需要注意的是,通過mapper建立映射的數(shù)據(jù)表必須帶有主鍵,如果沒有主鍵就無法定位某個table的某行row, 
#如果無法定位某行row, 就無法做Object-relational mapping這樣的映射
# 8. 創(chuàng)建session
Session = sessionmaker(bind=mysql_egnine)
session = Session()
 #由此我們只需對python的user類的操作,后臺數(shù)據(jù)庫的具體實現(xiàn)交由session完成
# 9. 執(zhí)行
session.commit()
 #實現(xiàn)與數(shù)據(jù)庫的交互
# 10. 查詢
usr_info = session.query(user).filter_by(age=12).first()
 #返回數(shù)據(jù)庫中年紀(jì)12歲的第一條數(shù)據(jù)

上面結(jié)合SQLAlchemy中ORM部分實現(xiàn)一個Mapper對象,將類的實例對應(yīng)表中的記錄,實例的屬性對應(yīng)字段。實現(xiàn)一個Data Mapping需要三個元素:Tabella Metadata, user-defined class, mapper對象,這三個是實現(xiàn)對象對表映射的基本元素,在此基礎(chǔ)上,可實現(xiàn)一對多的映射,實現(xiàn)類似多表查詢的問題
首先創(chuàng)建兩個相關(guān)聯(lián)的表Student, Score,表Score中以主表的id字段為外鍵

Student = Table('student', engine,  
              column(‘id', Interger, primary_key = True), 
              column('name', String, nullable=False), 
              column('age', Interger) 
) 
Score = Table('score', engine,  
            column('id', Integer, primary_key=True), 
            column('student_id', Integer, ForeignKey(student.id)) 
            column('category', String, nullable=False), 
            column('score', Integer)   
) 

兩表中,Score表以Student表中id項為外鍵,一般稱Student表為主表,Score表為從表
表創(chuàng)建好后,那同樣,在python中需定義兩個與表相對應(yīng)的類

class student_type(object): 
     def __init__(self): 
        self.name = None 
class score_type(object): 
     def __init__(self): 
        self.category = None 

在建立mapping時,我們只需要體現(xiàn)兩個表間又相互關(guān)聯(lián)關(guān)系,
并不關(guān)心表中具體的主鍵與外鍵等關(guān)系(由SQLAlchemy處理),
當(dāng)需要體現(xiàn)表student與表score間的關(guān)聯(lián)關(guān)系,mapper具體的定義方法如:
mapper(student_type, student, properties={'_scores': relation(score_type, Score)})
通過properties中參數(shù),實現(xiàn)score_type 與Score的映射,
由此可以通過訪問student中的'_scores'屬性來查詢Score表中的值
另外,properties是一個字典,可以添加多個屬性,SQLAlchemy中有些模塊如backref, 也可導(dǎo)入

綜上,使用關(guān)系映射可以方便地從一個對象直接找到相對應(yīng)的其他的對象

相關(guān)文章

  • Python中排序函數(shù)sorted()函數(shù)的使用實例

    Python中排序函數(shù)sorted()函數(shù)的使用實例

    sorted()作為Python內(nèi)置函數(shù)之一,其功能是對序列(列表、元組、字典、集合、還包括字符串)進行排序,下面這篇文章主要給大家介紹了關(guān)于Python中排序函數(shù)sorted()函數(shù)的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • python實現(xiàn)局部圖像放大

    python實現(xiàn)局部圖像放大

    這篇文章主要介紹了python實現(xiàn)局部圖像放大,畫中畫形式展示,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 使用Python代碼實現(xiàn)對Excel單元格的鎖定

    使用Python代碼實現(xiàn)對Excel單元格的鎖定

    在Excel表格中,我們可以通過鎖定特定的單元格或區(qū)域,防止對單元格內(nèi)容進行隨意修改,確保關(guān)鍵數(shù)據(jù)、公式或格式不被誤改,本文將介紹如何使用Python代碼來實現(xiàn)對Excel單元格的鎖定,實現(xiàn)批量操作以及自動化,需要的朋友可以參考下
    2024-06-06
  • Python編程實現(xiàn)雙擊更新所有已安裝python模塊的方法

    Python編程實現(xiàn)雙擊更新所有已安裝python模塊的方法

    這篇文章主要介紹了Python編程實現(xiàn)雙擊更新所有已安裝python模塊的方法,涉及Python針對模塊操作命令的相關(guān)封裝與調(diào)用技巧,需要的朋友可以參考下
    2017-06-06
  • python實現(xiàn)區(qū)間合并的方法

    python實現(xiàn)區(qū)間合并的方法

    區(qū)間合并是指將重疊的區(qū)間合并為一個或多個不重疊的區(qū)間,本文主要介紹了python實現(xiàn)區(qū)間合并的方法,文中通過代碼介紹的很詳細,感興趣的可以了解一下
    2024-02-02
  • yolov5 win10 CPU與GPU環(huán)境搭建過程

    yolov5 win10 CPU與GPU環(huán)境搭建過程

    這篇文章主要介紹了yolov5 win10 CPU與GPU環(huán)境搭建過程,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • Python調(diào)用adb命令實現(xiàn)對多臺設(shè)備同時進行reboot的方法

    Python調(diào)用adb命令實現(xiàn)對多臺設(shè)備同時進行reboot的方法

    今天小編就為大家分享一篇Python調(diào)用adb命令實現(xiàn)對多臺設(shè)備同時進行reboot的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python Selenium安裝及環(huán)境配置的實現(xiàn)

    Python Selenium安裝及環(huán)境配置的實現(xiàn)

    這篇文章主要介紹了Python Selenium安裝及環(huán)境配置的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 解決py2exe打包后,總是多顯示一個DOS黑色窗口的問題

    解決py2exe打包后,總是多顯示一個DOS黑色窗口的問題

    今天小編就為大家分享一篇解決py2exe打包后,總是多顯示一個DOS黑色窗口的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Python如何實現(xiàn)SSH遠程連接與文件傳輸

    Python如何實現(xiàn)SSH遠程連接與文件傳輸

    這篇文章主要介紹了Python如何實現(xiàn)SSH遠程連接與文件傳輸問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05

最新評論

河间市| 滦平县| 金山区| 金寨县| 青岛市| 丹阳市| 江山市| 高雄市| 百色市| 昔阳县| 建阳市| 通江县| 唐山市| 临城县| 卓资县| 密山市| 包头市| 琼结县| 佛学| 合山市| 无棣县| 习水县| 洛隆县| 安平县| 格尔木市| 闻喜县| 神池县| 桐乡市| 民县| 通化县| 肇源县| 上饶市| 鄂托克前旗| 纳雍县| 德化县| 望城县| 新巴尔虎左旗| 怀柔区| 金川县| 达孜县| 新营市|