1. 程式人生 > >python simple and small ORM Peewee(矮小的) 入門篇

python simple and small ORM Peewee(矮小的) 入門篇

imp down where div 框架 ins http tps .com

python ORM 多種多樣,如:Django ORM , SQLAlchemy , SqlObject , 今天我們來介紹一款小巧精悍框架,支持的數據庫: sqlite,mysql,postgresql , 支持的Python版本: 2.6+ and 3.2+
官方文檔鏈接

1. 安裝peewee

  • pip
    pip install peewee

  • source install

    git clone https://github.com/coleifer/peewee.git
    cd peewee
    python setup.py install

2. hello world

hello_world.py


from peewee import *

DB = SqliteDatabase(‘helloworld.db‘)

class BaseModle(Modle):
    """
    基礎模型

    """
    class Meta():
        database = DB

class HelloWorld(BaseModle):
    """
    hello world模型
    peewee模型及數據庫表,表及模型
    """
    hwid = PrimaryKeyField(unique=True)
    hwcontent = CharField()

    @classmethod
    def save_info(cls, hw_content):
        """
            保存數據
        ""
        HelloWorld(hwcontent=hw_content).save()

    @classmethod
    def select_info(cls, hw_content=None):
        """
            查詢數據
        """
        if hw_content:
            cls.select().where(HelloWorld.hwcontent == hw_content)
        else:
            cls.select()

test_hello_world.py

from hello_world import DB, HelloWorld


def db_test():
    DB.create_tables([HelloWorld], safe=True)
    HelloWorld.save_info(‘hello world my peewee.‘)

if __name__ == ‘__main__‘:
    db_test()
    for hw in HelloWorld.select_info():
        print(hw.hwcontent)

done
重點理解peewee vs database 關系表

Thing Corresponds to…
Model Database table
Field instance Column on a table
Model instance Row in a database table

python simple and small ORM Peewee(矮小的) 入門篇