国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

淺談Python peewee 使用經驗

2020-02-16 10:26:19
字體:
來源:轉載
供稿:網友

本文使用案例是基于 python2.7 實現

以下內容均為個人使用 peewee 的經驗和遇到的坑,不會涉及過多的基本操作。所以,沒有使用過 peewee,可以先閱讀文檔

正確性和覆蓋面有待提高,如果遇到新的問題歡迎討論。

一、介紹

Peewee 是一個簡單、輕巧的 Python ORM。

    簡單、輕巧、富有表現力(原詞 expressive )的ORM 支持python版本 2.6+ 和 3.2+ 支持數據庫包括:sqlite, mysql and postgresql 包含一堆實用的擴展在 playhouse 模塊中

總而言之,peewee 可以完全可以應付個人或企業的中小型項目的 Model 層,上手容易,功能很強大。

二、基本使用方法

from peewee import *db = SqliteDatabase('people.db')class BaseModel(Model):  class Meta:    database = db # This model uses the "people.db" database.class Person(BaseModel):  name = CharField()  birthday = DateField()  is_relative = BooleanField()  

基本的使用方法,推薦閱讀文檔--quickstart

三、推薦使用姿勢

下面介紹一些我在使用過程的經驗和遇到的坑,希望可以幫助大家更好的使用 peewee。

3.1 連接數據庫

連接數據庫時,推薦使用 playhouse 中的 db_url 模塊。db_url 的 connect 方法可以通過傳入的 URL 字符串,生成數據庫連接。

3.1.1 connect(url, **connect_params)

通過傳入的 url 字符串,創建一個數據庫實例

url形如:

    mysql://user:passwd@ip:port/my_db 將創建一個 本地 MySQL 的 my_db 數據庫的實例(will create a MySQLDatabase instance) mysql+pool://user:passwd@ip:port/my_db?charset=utf8&max_connections=20&stale_timeout=300 將創建一個本地 MySQL 的 my_db 的連接池,最大連接數為20(In a multi-threaded application, up to max_connections will be opened. Each thread (or, if using gevent, greenlet) will have it's own connection. ),超時時間為300秒(will create a PooledMySQLDatabase instance)

注意:charset 默認為utf8。如需要支持 emoji ,charset 設置為utf8mb4,同時保證創建數據庫時的字符集設置正確CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;。

支持的 schemes:

    apsw: APSWDatabase mysql: MySQLDatabase mysql+pool: PooledMySQLDatabase postgres: PostgresqlDatabase postgres+pool: PooledPostgresqlDatabase postgresext: PostgresqlExtDatabase postgresext+pool: PooledPostgresqlExtDatabase sqlite: SqliteDatabase sqliteext: SqliteExtDatabase sqlite+pool: PooledSqliteDatabase sqliteext+pool: PooledSqliteExtDatabase

3.1.2 推薦姿勢

from playhouse.db_url import connectfrom dock.common import config# url: mysql+pool://root:root@127.0.0.1:3306/appmanage?max_connections=300&stale_timeout=300mysql_config_url = config_dict.get('config').get('mysql').get('url')db = connect(url=mysql_config_url)            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 湟源县| 桑植县| 南乐县| 和田市| 屯昌县| 遵义县| 乐至县| 古蔺县| 武定县| 康定县| 曲沃县| 盐津县| 池州市| 都兰县| 磴口县| 页游| 贵港市| 调兵山市| 吴堡县| 涞源县| 铅山县| 宾阳县| 错那县| 谷城县| 兴安县| 永修县| 肇东市| 汽车| 高陵县| 惠东县| 舞阳县| 锡林浩特市| 呼和浩特市| 昌平区| 蒙山县| 中江县| 兴山县| 上杭县| 永康市| 辽源市| 甘洛县|