mysql是web世界中使用最廣泛的資料庫伺服器。sqlite的特點是輕量級、可嵌入,但不能承受高併發訪問,適合桌面和移動應用。而mysql是為伺服器端設計的資料庫,能承受高併發訪問,同時占用的記憶體也遠遠大於sqlite。
由於python的db-api定義都是通用的,所以,操作mysql的資料庫**和sqlite類似。
在python中,最有名的orm框架是sqlalchemy。
可以通過pip安裝sqlalchemy。
建立的user
表
#匯入from sqlalchemy import
column, string, create_engine, foreignkey
from sqlalchemy.orm import
sessionmaker, relationships
from sqlalchemy.ext.declarative import
declarative_base
#建立物件的基類
base =declarative_base()
#定義user物件
class
user(base):
#表的名字
__tablename__ = '
user'#
表的結構
id = column(string(20), primary_key=true)
name = column(string(20))
#初始化資料庫連線
engine = create_engine('
mysql+mysqlconnector://root:password@localhost:3306/test')
#建立dbsession型別
bdsession = sessionmaker(bind=engine)
create_engine()
用來初始化資料庫連線。sqlalchemy用乙個字串表示連線資訊。
由於有了orm,向資料庫表中新增一行記錄,可以視為新增乙個user
物件
#建立session物件
session =dbssession()
#建立新user物件
new_user = user(id='
5', name='
bob')#
新增到session
session.add(new_user)
#提交即儲存到資料庫
session.commit()
#關閉session
從資料庫表中查詢資料,有了orm,查詢出來的可以不再是tuple,而是user
物件。sqlalchemy提供的查詢介面如下
#建立session:
session =dbsession()
#建立query查詢,filter是where條件,最後呼叫one()返回唯一行,如果呼叫all()則返回所有行:
user = session.query(user).filter(user.id=='5'
).one()
#列印型別和物件的name屬性:
print('
type:
', type(user))
print('
name:
', user.name)
#關閉session:
session.close()
由於關聯式資料庫的多個表還可以用外來鍵實現一對多、多對多等關聯,相應地,orm框架也可以提供兩個物件之間的一對多、多對多等功能
classuser(base):
__tablename__ = '
user
'id = column(string(20), primary_key=true)
name = column(string(20))
#一對多
books = relationship('
book')
class
book(base):
__tablename__ = '
book
'id = column(string(20), primary_key=true)
name = column(string(20))
#book表通過外來鍵關聯到user表
user_id = column(string(20), foreignkey('
user.id
'))
當我們查詢乙個user物件時,該物件的books屬性將返回乙個包含若干個book物件的list
1、廖雪峰學習官網
2、菜鳥教程:
python三十八 re模組
正規表示式 re模組 是一種小型的,高度專業化的程式語言。在python中 它內嵌在python中,並通過re模組實現。正規表示式模組被編譯成一系列位元組碼,然後由用c編寫的匹配引擎執行。正則就是處理字串的。1.普通字元 字串本身的方法。比如字串的 find split 2.元字元 import r...
演算法(三十八)
1 使用者模型檔案去重。抖音上不同的使用者型別我們有不同的使用者模型檔案。我們有乙個模型配置檔案,裡面有很多的不同使用者型別和他們對應的模型檔案。我們需要找出每個模型檔案對應的是哪些使用者型別。給定一行輸入,格式為 a ba表示這個使用者的使用者型別,b表示這個使用者對應的模型檔案。請你輸出每個模型...
笨辦法學Python(三十八)
現在去找一些 python 閱讀一下。你需要自己找 然後從中學習一些東西。你學到的東西已經足夠讓你看懂一些 了,但你可能還無法理解這些 的功能。這節課我要教給你的是 如何運用你學到的東西理解別人的 首先把你想要理解的 列印到紙上。沒錯,你需要列印出來,因為和螢幕輸出相比,你的眼睛和大腦更習慣於接受紙...