目前,实现了的Database子类有三个;SqliteDatabaseMySQLDatabasePostgresqlDatabase

class SqliteDatabase(Database)

“sqlite3”模块驱动

class MySQLDatabase(Database)

“MySQLdb” 模块驱动

class PostgresqlDatabase(Database)

“psycopg2” 模块驱动

例如mysql数据库连接,新建文件mysql_db.py:(其它两种数据库连接类似)

from peewee import *

database = MySQLDatabase(database, **kwargs)
database.connect()
print database.get_conn() class BaseModel(Model):
class Meta:
database = database
class TB1(BaseModel):
id = BigIntegerField(primary_key=True) class Meta:
db_table = 'tb1'

其中database为mysql的Default Schema(默认数据库),kwargs为连接数据库的信息

格式如下:

{'host': 'vpca-1.vm.elenet.me', 'password': '123456', 'port': 9707, 'user': 'vpca_user'}

ps: 可以运行mysql_db.py,测试数据库是否连接成功,结果如下:

  <pymysql.connections.Connection object at 0x104c5d710>

然后新建一个操作数据库的python文件 db_utils.py

def select_sql(table, sql):
query_result = table.get(sql)
return query_result def select_all(table, sql):
query_result = table.select().where(sql)
return query_result def excute_sql(table, sql):
query_result = table.raw(sql)
return query_result.execute() def raw_sql(table, sql):
query = table.raw(sql)
return query

接下来,我们就可以对数据库进行操作了,新建一个test_db.py文件,如下所示:

import unittest
from db_utils import excute_sql
from mysql_db import TB1
class TestDB(unittest.TestCase):
def setUp(self):
    self.select1 = "SELECT id FROM tb1 LIMIT 1"   def test_select_sql(self):
    data = excute_sql(TB1, self.select1)
    for re in data:
print re.id  

运行test_db.py,可以打印出数据库查询结果,其它数据库操作均可使用该方法

python -- peewee处理数据库连接的更多相关文章

  1. [Python]peewee使用经验

    peewee 使用经验 本文使用案例是基于 python2.7 实现 以下内容均为个人使用 peewee 的经验和遇到的坑,不会涉及过多的基本操作.所以,没有使用过 peewee,可以先阅读文档 正确 ...

  2. [Python]peewee 使用经验

    peewee 使用经验 本文使用案例是基于 python2.7 实现 以下内容均为个人使用 peewee 的经验和遇到的坑,不会涉及过多的基本操作.所以,没有使用过 peewee,可以先阅读文档 正确 ...

  3. Python实现Mysql数据库连接池

    python连接Mysql数据库: python编程中可以使用MySQLdb进行数据库的连接及诸如查询/插入/更新等操作,但是每次连接mysql数据库请求时,都是独立的去请求访问,相当浪费资源,而且访 ...

  4. 【笔记】python的sqlalchemy数据库连接池原理的说明

    sqlalchemy数据库连接池的使用方式是延迟初始化,就是说一开始你调用create_engine(...)后创建的那个数据库池是空的,你后面通过session.connection()或者engi ...

  5. 基于python实现Oracle数据库连接查询操作

    使用python语言连接Oracle数据库配置 #coding:utf-8 import cx_Oracle as oracle db=oracle.connect('root/123456@192. ...

  6. python peewee.ImproperlyConfigured: MySQLdb or PyMySQL must be installed.

    最近在学习Python,打算先看两个在线教程,再在github上找几个开源的项目练习一下,在学到“被解放的姜戈”时遇到django同步数据库时无法执行的错误,记录一下. 错误现象: 执行python ...

  7. python三种数据库连接池方式

    psycopg2.pool – Connections pooling Creating new PostgreSQL connections can be an expensive operatio ...

  8. python+selenium之数据库连接

    首先要安装Python和MySQL的连接工具 下载地址如下: https://pypi.python.org/pypi/PyMySQL https://github.com/PyMySQL/PyMyS ...

  9. 吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接

    Python 程序通过 python-firebase 包可以存取 Firebase 数据库. 使用 python-firebase 包 首先必须安装 python-firebase 包,安装方法如下 ...

随机推荐

  1. pollard_rho 算法进行质因数分解

    //************************************************ //pollard_rho 算法进行质因数分解 //*********************** ...

  2. OpenStack IceHouse 部署 - 5 - 网络节点部署

    Neutron网络服务(网络节点)     目录 [隐藏]  1 参考 2 前置工作 2.1 调整内核参数 3 安装 4 配置 4.1 keystone对接 4.2 rabbitmq对接 4.3 me ...

  3. Code Signal_练习题_Are Similar?

    Two arrays are called similar if one can be obtained from another by swapping at most one pair of el ...

  4. JavaScript函数与面向对象

    一.JS面向对象 function Func(name,age){ //this = obj this.Name = name; this.Age = age; } obj = new Func('r ...

  5. centos使用ngnix代理https

    自己建web服务器,考虑到安全问题需要用到https. 在此使用nginx的反向代理功能实现https 腾讯云证书安装指引 ssl.conf 配置 // http请求重定向https server { ...

  6. 系统测试用例评审checklist

    规则要素内容 使用范围 审查结果 “否”的理由 “免”的理由 规则 建议 是 否 免 规范性规则               用例是否按照公司规定的模板进行编写?  √             用例的 ...

  7. 理解 on-policy 和 off-policy

    转自:https://www.cnblogs.com/xiachongkun/p/7767976.html,感谢分享 大名鼎鼎的蒙特卡洛方法(MC),源自于一个赌城的名字,作为一种计算方法,应用领域众 ...

  8. Java web相关内容

    我们即将学习Java web 这是通过查阅资料找到的和Java web 相关的内容. 一:Java web的含义 JavaWeb,是用Java技术来解决相关web互联网领域的技术总和.web包括:we ...

  9. 【Leetcode】【Easy】Isomorphic Strings

    Given two strings s and t, determine if they are isomorphic. Two strings are isomorphic if the chara ...

  10. Java学习---IO操作

    基础知识 1.文件操作 Java语言统一将每个文件都视为一个顺序字节流.每个文件或者结束于一个文件结束标志,或者根据系统维护管理数据中所纪录的具体字节数来终止.当一个文件打开时,一个对象就被创建,同时 ...