python -- peewee处理数据库连接
目前,实现了的Database子类有三个;SqliteDatabase、MySQLDatabase、PostgresqlDatabase
- 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处理数据库连接的更多相关文章
- [Python]peewee使用经验
		
peewee 使用经验 本文使用案例是基于 python2.7 实现 以下内容均为个人使用 peewee 的经验和遇到的坑,不会涉及过多的基本操作.所以,没有使用过 peewee,可以先阅读文档 正确 ...
 - [Python]peewee 使用经验
		
peewee 使用经验 本文使用案例是基于 python2.7 实现 以下内容均为个人使用 peewee 的经验和遇到的坑,不会涉及过多的基本操作.所以,没有使用过 peewee,可以先阅读文档 正确 ...
 - Python实现Mysql数据库连接池
		
python连接Mysql数据库: python编程中可以使用MySQLdb进行数据库的连接及诸如查询/插入/更新等操作,但是每次连接mysql数据库请求时,都是独立的去请求访问,相当浪费资源,而且访 ...
 - 【笔记】python的sqlalchemy数据库连接池原理的说明
		
sqlalchemy数据库连接池的使用方式是延迟初始化,就是说一开始你调用create_engine(...)后创建的那个数据库池是空的,你后面通过session.connection()或者engi ...
 - 基于python实现Oracle数据库连接查询操作
		
使用python语言连接Oracle数据库配置 #coding:utf-8 import cx_Oracle as oracle db=oracle.connect('root/123456@192. ...
 - python peewee.ImproperlyConfigured: MySQLdb or PyMySQL must be installed.
		
最近在学习Python,打算先看两个在线教程,再在github上找几个开源的项目练习一下,在学到“被解放的姜戈”时遇到django同步数据库时无法执行的错误,记录一下. 错误现象: 执行python ...
 - python三种数据库连接池方式
		
psycopg2.pool – Connections pooling Creating new PostgreSQL connections can be an expensive operatio ...
 - python+selenium之数据库连接
		
首先要安装Python和MySQL的连接工具 下载地址如下: https://pypi.python.org/pypi/PyMySQL https://github.com/PyMySQL/PyMyS ...
 - 吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接
		
Python 程序通过 python-firebase 包可以存取 Firebase 数据库. 使用 python-firebase 包 首先必须安装 python-firebase 包,安装方法如下 ...
 
随机推荐
- Java注解拾遗
			
注解简介: 注解Annotation是jdk1.5的新增功能,在现在的日常开发中,几乎离不开注解,写篇短文,来做个拾遗. 注解作用: Annotation(注解)的作用是修饰包.类.构造方法.方法.成 ...
 - BZOJ4671:异或图
			
传送门 直接求连通的不好做,考虑容斥 设 \(g_i\) 表示至少有 \(i\) 个连通块的方案数,\(f_i\) 表示恰好有 \(i\) 个的 那么 \[g_x=\sum_{i=x}^{n}\beg ...
 - 纯CSS实现3D照片墙
			
HTML部分: <body> <div class="photo-wrap"> <!-- 舞台 --> <div class=" ...
 - css 超出部分以省略号的形式显示
			
想要实现文字超出部分以省略号的形式显示首先需要给此元素设置一个宽度,然后添加以下属性 overflow: hidden;/*内容超出后隐藏*/ text-overflow: ellipsis;/*超出 ...
 - WinForm实现Rabbitmq官网6个案例-Routing
			
代码: namespace RabbitMQDemo { public partial class Routing : Form { private string exchangeName = &qu ...
 - HTTP(S)网络框架的设计
			
0.麻烦 操作系统提供的网络接口都会令人不爽,要么太接近底层而使用不便,要么层次过高又不提供底层点的接口供设置参数.但是我们不能期望系统API做得很高级,因为没有绝对合适的网络库,必须定制化从而达到适 ...
 - Leetcode算法比赛----Longest Absolute File Path
			
问题描述 Suppose we abstract our file system by a string in the following manner: The string "dir\n ...
 - 【眼见为实】自己动手实践理解数据库READ COMMITTED && MVCC
			
[READ COMMITTED] 首先设置数据库隔离级别为读已提交(READ COMMITTED): set global transaction isolation level READ COMMI ...
 - 理解ASP.NET 5运行时命令:DNVM, DNX, 和DNU
			
ASP.NET 5 引入了一个新型的运行时,让我们可以现场交付模式组合式构建应用程序,而不依赖于宿主机上的.NET框架.这种新模式为我们提供了命令行工具(DNVM.DNX.DNU)用于管理我们的.ne ...
 - INFA Transformation组件
			
RouterRouter和Filter很相似,Router可以用一或多个Filter来取代,不同的是用Router来生成多个组时输入数据只需处理一次,所以效率更高:Router 由一个输入组,一到多个 ...