Python教程

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)

 

这篇关于python使用dbutils连接PostgreSQL的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!