PostgreSQL使用Python3连接

译者:anxin
日期:2017-10-08

Python中有很多模块支持访问PostgreSQL数据库,详细查看:Python的PostgreSQL模块。如想要在Python程序中连接访问PostgreSQL数据库,推荐使用Psycopg2模块

安装Python模块Psycopg2

最好首先创建Python虚拟环境,激活Python虚拟环境,先升级pip,以防安装Psycopg2模块出现错误:

pip install --upgrade pip

使用pip安装Psycopg2模块

pip install psycopg2

Python连接 PostgreSQL数据库函数解释

Python的Psycopg2模块提供了连接访问PostgreSQL数据库的函数,它是psycopg2类的方法psycopg2.connect()

psycopg2.connect()函数描述

 psycopg2.connect(dsn=None, connection_factory=None, cursor_factory=None, async=False, **kwargs)

psycopg2.connect()使用dsn参数用来设置连接字符串,连接字符串中每个keyword=value参数之间使用空格分隔

psycopg2.connect("host=localhost port=5432 dbname=mydb user=postgres password=123456")

或者是使用**kwargs设置一组关键词,每个keyword=value参数之间使用分号分隔

psycopg2.connect(host="localhost", port="5432", dbname="mydb", user="postgres", password="123456")

dsn和**kwargs中可使用的参数说明:

  • host:主机名或 IP 地址
  • port:连接PostgreSQL数据库使用的端口
  • dbname:连接的数据库,默认为与用户名同名的数据库
  • user:连接数据库的用户
  • password:连接数据库用户的密码
  • sslmode:使用加密形式

Python连接PostgreSQL数据库实例

使用如下代码连接PostgreSQL数据库,当然其中dbnameuserpassword要修改为你自己的数据。在浏览器中访问此脚本(前提是配置好了服务器),能够连接PostgreSQL数据库,则在页面上显示:数据库连接成功!

如下程序代码是wsgi程序:

# -*- coding: utf-8 -*-
import psycopg2

def application(environ, start_response):
    try:
        conn = psycopg2.connect("host=localhost port=5432 dbname=djangosite user=postgres password=su@db@yuzhi100")
    except psycopg2.OperationalError:
        output = bytes('数据库连接失败!', 'utf-8')
    else:
        conn.close()
        output = bytes('数据库连接成功!', 'utf-8')
    status = '200 OK'
    response_headers = [('Content-type', 'text/html; charset=utf-8'),
                        ('Content-Length', str(len(output)))]
    start_response(status, response_headers)

    return [output]

操作完PostgreSQL数据库后,使用connection类的close()方法关闭断开PostgreSQL数据库连接。

本文链接:/tutorial/postgresql/postgresql-python3-lianjie

本文版权归知站所有,未经站长同意不得转载,谢谢尊重作者劳动成果!