zoukankan      html  css  js  c++  java
  • python ORM 模块peewee(二): 数据库使用的基本流程

    #! /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
    
  • 相关阅读:
    转:马云邮件全文
    XIFF资料1
    代码还是请一个字母一个字母敲(如果您只想混口饭吃就不要读了本文只面向想成为hacker的程序员)
    一个本来很有希望的项目噶然而止,脑子一下子空了
    转:进京感受一个技术人职业发展心得
    java中定义接口
    两个大数相乘(纯C实现)
    [ios学习入门1]hello,word!
    两台电脑通信的连接过程
    谁说引用不可改变
  • 原文地址:https://www.cnblogs.com/noway-neway/p/5274814.html
Copyright © 2011-2022 走看看