SQLalchemy —— 創(chuàng)建數(shù)據(jù)庫、表

1.創(chuàng)建數(shù)據(jù)庫和表

例子1:

from sqlalchemy import create_engine
from sqlalchemy import Column, Date, Integer, String, ForeignKey
from sqlalchemy.ext.declarative import declarative_base

# 連接數(shù)據(jù)庫
engine = create_engine('sqlite:///memory.db', echo=True)

# 基本類
Base = declarative_base()

# 表要繼承基本類
class User(Base):
    __tablename__ = 'users' # 表的名字

    # 定義各字段
    id = Column(Integer, primary_key=True)
    name = Column(String)
    fullname = Column(String)
    password = Column(String)

    def __str__(self):
        return self.id

# 創(chuàng)建表
Base.metadata.create_all(engine)

以上代碼會在當(dāng)前目錄創(chuàng)建名為 memory.db 的數(shù)據(jù)庫你踩,并創(chuàng)建一張名為 users 的表诅岩,表內(nèi)有 idname带膜、fullnamepassword 四個字段吩谦。

在這里我們沒有設(shè)置字段最大長度,對 SQLite 和 PostgreSQL膝藕,這是一個有效的數(shù)據(jù)類型式廷,如果需要,可以這樣設(shè)置:

Column(String(50))




例子2:

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

# 連接數(shù)據(jù)庫
engine = create_engine('sqlite:///test.db', echo=True)
# 綁定引擎
metadata = MetaData(engine)

# 定義表格
user_table = Table('user', metadata,
        Column('id', Integer, primary_key=True),
        Column('name', String(50)),
        Column('fullname', String(100))
        )

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()

以上代碼會在當(dāng)前目錄創(chuàng)建名為 test.db 的數(shù)據(jù)庫芭挽,并創(chuàng)建兩張表滑废,分別為: useraddress

創(chuàng)建引擎時袜爪,echo 參數(shù)為 True蠕趁,程序運行時調(diào)試信息會打印出來。




2.連接數(shù)據(jù)表

實際應(yīng)用時辛馆,往往表都已經(jīng)存在俺陋,并不需要創(chuàng)建,只需把它們”導(dǎo)入”進(jìn)來即可昙篙,這時就得使用 autoload 參數(shù)腊状。

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

# 連接數(shù)據(jù)庫
engine = create_engine('sqlite:///school.db', echo=False)
# 綁定引擎
metadata = MetaData(engine)

# 連接數(shù)據(jù)表
user_table = Table('user', metadata, autoload=True)
address_table = Table('address', metadata, autoload=True)

如果 MetaData 沒有綁定引擎,則另需指定 autoload_with 參數(shù):

user_table = Table('user', metadata, autoload=True, autoload_with=engine)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末寿酌,一起剝皮案震驚了整個濱河市硕蛹,隨后出現(xiàn)的幾起案子硕并,更是在濱河造成了極大的恐慌倔毙,老刑警劉巖乙濒,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颁股,死亡現(xiàn)場離奇詭異,居然都是意外死亡甘有,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進(jìn)店門忱反,熙熙樓的掌柜王于貴愁眉苦臉地迎上來滤愕,“玉大人,你說我怎么就攤上這事注竿∮钪牵” “怎么了?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵喂分,是天一觀的道長机蔗。 經(jīng)常有香客問我,道長梆掸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任酸钦,我火速辦了婚禮卑硫,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘欢伏。我一直安慰自己,他們只是感情好硝拧,可當(dāng)我...
    茶點故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布障陶。 她就那樣靜靜地躺著,像睡著了一般夷恍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天侄刽,我揣著相機與錄音朋凉,去河邊找鬼。 笑死墓毒,一個胖子當(dāng)著我的面吹牛亲怠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播团秽,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼习勤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了夷都?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤囤官,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后摩泪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體劫谅,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡捏检,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了熊楼。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片能犯。...
    茶點故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡踩晶,死狀恐怖执泰,靈堂內(nèi)的尸體忽然破棺而出术吝,到底是詐尸還是另有隱情茸苇,我是刑警寧澤,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布学密,位于F島的核電站,受9級特大地震影響则果,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜西壮,卻給世界環(huán)境...
    茶點故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望做修。 院中可真熱鬧,春花似錦蔗坯、人聲如沸燎含。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至卸奉,卻和暖如春颖御,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背潘拱。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留尚辑,地道東北人盔腔。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓月褥,卻偏偏與公主長得像,于是被迫代替她去往敵國和親舀透。 傳聞我的和親對象是個殘疾皇子决左,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,876評論 2 361

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