数据库
首页 > 数据库> > python使用dbutils连接PostgreSQL

python使用dbutils连接PostgreSQL

作者:互联网

安装好PostgreSQL后,开启本地服务,可通过Navicat连接数据库并导入excel数据项,注意数据库名、表名、字段名时均使用小写字母,如使用大写字母,在生成对应表名和字段会自动加上“”,影响查询,此外注意避开关键词,比如id,name,group之类SQL需要保留关键词。

如下为连接数据库代码

import psycopg2
# from  DBUtils.PooledDB import PooledDB # DBUtils 3.0.2版本无法使用,改为下列代码
from dbutils.pooled_db import PooledDB

POOL = PooledDB(
    creator=psycopg2,  # 使用链接数据库的模块
    maxconnections=6,  # 连接池允许的最大连接数,0和None表示不限制连接数
    mincached=2,  # 初始化时,链接池中至少创建的链接,0表示不创建
    blocking=True,  # 连接池中如果没有可用连接后,是否阻塞等待。True,等待;False,不等待然后报错
    ping=0,  # ping SQL服务端,检查是否服务可用。# 如:0 = None = never, 1 = default = whenever it is requested, 2 = when a cursor is created, 4 = when a query is executed, 7 = always

    host='127.0.0.1',
    port=5432,
    user='postgres',
    password='postgres',
    database='9000cw',
    # charset='utf8'
)


def fetchall(sql, *args):
    """ 获取所有数据 """
    conn = POOL.connection()
    cursor = conn.cursor()
    cursor.execute(sql, args)
    result = cursor.fetchall()
    cursor.close()
    conn.close()
    return result


def fetchone(sql, *args):
    """ 获取单行数据 """
    conn = POOL.connection()
    cursor = conn.cursor()
    cursor.execute(sql, args)
    result = cursor.fetchone()
    cursor.close()
    conn.close()
    return result


if __name__ == "__main__":
    sql = 'SELECT * FROM personnel_information'
    result = fetchall(sql=sql)
    print(result)

 

标签:__,PostgreSQL,python,PooledDB,cursor,result,sql,dbutils,conn
来源: https://www.cnblogs.com/feng-hao/p/16387375.html