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