#! /usr/bin/env python # coding: utf-8 # 1. 导入peewee的模块 from peewee import * from datetime import datetime # 2. 建立数据库实例 db = MySQLDatabase( database = 'test', host = 'localhost', port = 3306, user = 'test', passwd = 'test', charset = 'utf8' ) ####################################################################### # 3. 建立数据表的模型 # 4. 先建立基本模型,具体的模型在此基础上继承而来 class BaseModel(Model): class Meta: # 指定表所在的数据库 database = db class User(BaseModel): username = CharField(unique=True) class Tweet(BaseModel): user = ForeignKeyField(User, related_name='tweets') message = TextField() created_date = DateTimeField(default=datetime.now) is_published = BooleanField(default=True) ######################################################################### if __name__ == '__main__': try: # connect方法不是必须的,但是如果出错可以判断是否是在连接时出的错 db.connect() # 5. 创建表,这里有了safe=True选项,会在创建表之前先检查数据库里表是否已经存在,由于创建表的语句往往只需要使用一次,一般建议写入类或者方法中通过具体命令来调用 # 注意:peewee里面创建表有两个方法, create_tables是`Database`中的方法,创建表时会建立表之间的关系和表的索引,使用`somedb.create_tables([Models], safe=False)`来调用 # create_table是`Model`中的方法,仅仅创建表本身,而不包含索引和表之间的关系,使用`somemodel.create_table(safe=False)`来调用 db.create_tables([User, Tweet], safe=True) # 6. 断开连接 db.close() except Exception, e: print e