web.py開發web 第三章 Sqlalchemy

    web開發中通常的主要版塊就是視圖、模板、數據庫操做,前面已經講了最基礎的視圖跟模板,這一章主要是介紹下數據庫操做,如第一章前言所說,咱們的數據庫操做是使用sqlalchemy來實現的。 python

    不一樣於不少web開發,python開發web的數據庫不少是經過創建數據表類,綁定數據庫鏈接,而後自動建立數據表,這種設計很大程度上下降了在開發階段修改數據庫結構的麻煩,並且因爲表是對應一個個類建立而成,能夠很清晰的在任什麼時候候瞭解到該app的數據庫是如何設計的,這對維護的意義也是很是大的。 mysql

    在這裏咱們使用經常使用的User表來作介紹,先上代碼。
models.py
web

# -*- coding:utf-8 -*-
from sqlalchemy import *
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import scoped_session, sessionmaker

#定義數據庫的帳號、端口、密碼、數據庫名,使用的鏈接模塊,這裏用的是mysqldb
engine = create_engine(
    'mysql+mysqldb://root:123456@localhost:3306/temp?charset=utf8',
    echo=False#是否輸出數據庫操做過程,很方便調試
)

#定義一個函數,用來獲取sqlalchemy的session
def bindSQL():
    return scoped_session(sessionmaker(bind=engine))

Base = declarative_base()

class User(Base):
    __tablename__ = "user"
    id = Column(Integer, primary_key=True)
    name = Column(String(20), unique=True)
    email = Column(String(32), unique=True)
    password = Column(String(32))
    superuser = Column(Boolean, default=False)

metadata = Base.metadata

if __name__ == "__main__":
    metadata.create_all(engine)#運行python models.py就會自動建立定義的全部表

    以上就是User表的定義,能夠在User類裏很是清晰的看出這個數據表是如何設計的。接下來先在mysql建立一個叫"tech"的數據庫,接着只要在命令行運行python models.py就能夠看到數據庫中出現了User表了,用數據庫操做工具看看是否與定義的內容同樣吧:) sql

相關文章
相關標籤/搜索