Python學習之旅(三十八)

2022-07-31 23:36:20 字數 2389 閱讀 5107

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框架也可以提供兩個物件之間的一對多、多對多等功能

class

user(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 閱讀一下。你需要自己找 然後從中學習一些東西。你學到的東西已經足夠讓你看懂一些 了,但你可能還無法理解這些 的功能。這節課我要教給你的是 如何運用你學到的東西理解別人的 首先把你想要理解的 列印到紙上。沒錯,你需要列印出來,因為和螢幕輸出相比,你的眼睛和大腦更習慣於接受紙...