python SQLAlchemy

參考的是廖雪峰的python教程:https://www.liaoxuefeng.com/wiki/1016959663602400/1017803857459008

我們前面了解到了python連接mysql,用的是官方的mysql-connector,直接寫sql語(yǔ)句。今天來(lái)學(xué)習(xí)另一種新的連接數(shù)據(jù)庫(kù)方法。用到了ORM技術(shù),ORM就是把數(shù)據(jù)庫(kù)的表結(jié)構(gòu)映射到對(duì)象上,這個(gè)對(duì)象是自定義的。 首先安裝 SQLAlchemy

pip install sqlalchemy

先看下完整的例子

from sqlalchemy import Column,String,create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base

# Base是對(duì)象基類
Base = declarative_base()

#定義對(duì)象,用于被映射數(shù)據(jù)庫(kù)結(jié)構(gòu)
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 = sessionmaker(bind=engine)

tablename 是要連接的數(shù)據(jù)庫(kù)表名
create_engine是連接數(shù)據(jù)庫(kù)的信息:
格式為:'數(shù)據(jù)庫(kù)類型+數(shù)據(jù)庫(kù)驅(qū)動(dòng)名稱://用戶名:口令@機(jī)器地址:端口號(hào)/數(shù)據(jù)庫(kù)名'
下面的代碼展示了如何往數(shù)據(jù)表里添加一條記錄:

session = DBSession()

new_user = User(id='5', name='Bob')
session.add(new_user)
session.commit()
session.close()

對(duì)于數(shù)據(jù)表的連接, sqlalchemy 也提供了很好的實(shí)現(xiàn)方式, 我直接把例子引用過(guò)來(lái)

class User(Base):
    __tablename__ = 'user'

    id = Column(String(20), primary_key=True)
    name = Column(String(20))
    # 一對(duì)多:
    books = relationship('Book')

class Book(Base):
    __tablename__ = 'book'

    id = Column(String(20), primary_key=True)
    name = Column(String(20))
    # “多”的一方的book表是通過(guò)外鍵關(guān)聯(lián)到user表的:
    user_id = Column(String(20), ForeignKey('user.id'))
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容