目前,实现了的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. Jenkins-在节点上执行copy命令,将节点机上的文件拷贝到映射的网络驱动盘中报错,访问被拒绝 找不到指定驱动器

    问题如标题,根据网友提供的解决方法,完美解决: 在jenkins中执行这个命令时报错 说无法访问. 重新映射一次可解决这个问题,添加一条 net use 命令

  2. CentOS-Linux系统下安装MySQL

    一.mysql的安装 Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于RPM包管理,能够 ...

  3. 循环遍历正则验证input框内容合法性

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. VUE配置项结构

    VUE配置项结构 config:项目的配置文件 index.js: 基础的配置信息 dev.env.js:开发环境配置信息 prod.env.js:线上环境配置信息 build: 项目打包所需要的内容 ...

  5. iview-admin2中vue.config配置文件輸出路徑

    在vue.config.js文件中添加如下信息 module.exports = { baseUrl: '', // 可以配置生产和测试环境下,文件的路径(即index中引用的路径,但不会在dist中 ...

  6. js-小数计算问题

    先上图: 什么情况? 原因:js采用二进制进行小数计算 先看十进制的小数转换为二进制的方法: 十进制数的整数位是二进制数的整数位,十进制数的小数位是二进制数的小数位 假如我们有小数111.4(10), ...

  7. ArcGISPlotSilverlightAPI For WPF

    这两天有个需求,在地图上做标绘箭头,效果如下图. Arcgis for WPF 10.2.5.0版本,然而官方文档中没有这种API,自己去写一个呢,又感觉无从下手.无奈去网上搜索了一下,发现一篇好文: ...

  8. c# 设计模式 之:简单工厂、工厂方法、抽象工厂之小结、区别

    很多时候,我发现这三种设计模式难以区分,常常会张冠李戴闹了笑话.很有必要深入总结一下三种设计模式的特点.相同之处和不同之处. 1 本质 三个设计模式名字中都含有“工厂”二字,其含义是使用工厂(一个或一 ...

  9. python 3 输入和输出

    一.普遍的输入和输出 1.输入 在python3中,函数的输入格式为:input(),能够接受一个标准输入数据,返回string类型. input() 函数是从键盘作为字符串读取数据,不论是否使用引号 ...

  10. C# 试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)

    C# 在调用C++dll时,可能会出现 :试图加载格式不正确的程序. (异常来自 HRESULT:0x8007000B)这个错误. 一般情况下是C#目标平台跟C++dll不兼容,64位跟32位兼容性问 ...