web开发中一般的主要版块就是视图、模板、数据库操作,前面已经讲了最基础的视图跟模板,这一章主要是介绍下数据库操作,如第一章前言所说,我们的数据库操作是使用sqlalchemy来实现的。
不同于很多web开发,python开发web的数据库很多是通过建立数据表类,绑定数据库连接,然后自动创建数据表,这种设计很大程度上降低了在开发阶段修改数据库结构的麻烦,而且由于表是对应一个个类创建而成,可以很清晰的在任何时候了解到该app的数据库是如何设计的,这对维护的意义也是非常大的。
在这里我们使用常用的User表来做介绍,先上代码。
models.py
# -*- 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表了,用数据库操作工具看看是否与定义的内容一样吧:)
来源:oschina
链接:https://my.oschina.net/u/240898/blog/120784