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