zl程序教程

您现在的位置是:首页 >  后端

当前栏目

windows环境下python连接openGauss数据库

PythonWindows数据库连接 环境 openGauss
2023-06-13 09:16:23 时间

  文章目录

  一、python 介绍

  python最新版

   python是款面向对象、直译式计算机程序设计语言,同时也是一种功能强大而完善的通用型语言,具有非常简洁而清晰的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中运行。

  Python特殊功能

  Python 软件亮点

  Python说明

  Python是一个解释性语言,因为不需要编译和连接所以能节省大量的程序开发时间。解释程序可以交互使用,这样可以可以很容易地试验语言的各种特色,写只用一次的程序,或在从底向上程序开发中测试函数。它也是一个方便的计算器。

  Python是一种面向对象、直译式计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。这种语言具有非常简捷而清晰的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中运行。目前,基于这种语言的相关技术正在飞速的发展,用户数量急剧扩大,相关的资源非常多。

  Python可用于的操作系统:和Linux / Unix系统,OS / 2,Mac上,Amiga上,其中包括。甚至有NET和Java虚拟机上运行,Python的实现是一个开源许可证,使得它可以自由使用和分派下,甚至用于商业用途。

  二、Python下载及安装

  1、下载: 进入python官网下载()。鼠标指向(不用点击)会弹出下拉框,直接点击下的Python 3.11.0即可下载。(国外网站下载较慢,建议找个国内的资源下载)

  2、下载好之后,右键以管理员身份运行exe可执行文件。

  这里勾选Add Python 3.11 to PATH (把Python的安装路径添加到系统环境 变量的Path变量中,如果不选那就需要自己配置环境变量了,参见FAQ) , Now 默认安装, 自定义安装。

  这里选自定义安装,安装Python文档、Python的pip等…默认即可,直接next

  路径可以更改一下:

  自动安装中……

  最后点这里(红圈处)。

  安装完成。

  打开(cmd)终端窗口,输入python命令,进行验证,看到相关版本信息,即表示安装成功。

  打开(cmd)终端窗口,输入pip 命令,验证环境变量是否配置成功。

  下载并安装模块:打开cmd窗口,键入命令 pip 进行安装,使用pip list命令查看是否已经安装模块。

  三、 () 介绍

  是一种用于执行SQL语句的,可以为、数据库提供统一访问接口,应用程序可基于它进行数据操作。是对libpq的封装,主要使用C语言实现,既高效又安全。它具有客户端游标和服务器端游标、异步通信和通知、支持“COPY TO/COPY FROM”功能。支持多种类型Python开箱即用,适配数据类型;通过灵活的对象适配系统,可以扩展和定制适配。兼容和Python 3。

  数据库提供了对特性的支持,并且支持通过SSL模式链接。

  四、 ()下载并初始化

  登录社区()下载对应的数据库连接器(本测试环境下载的是Python-.1.0,版本与数据版本匹配)。

  从发布包中获取,包名为-xxxx-操作系统版本号-64bit-Python.tar.gz。解压后有两个文件夹:库文件和lib库文件。

  将拷贝到python安装目录的第三方包文件夹(即site-目录)下。

  将lib文件夹中的文件拷贝到安装目录Lib目录下。

  对于非数据库用户,需要将解压后的lib目录,配置在环境变量中(参考FAQ)。

  下载并安装模块:打开cmd窗口,键入命令pip

  五、连接并访问数据库

  前置条件:数据库已成功安装、并成功启动。

  编辑好python文件,并保存。(本测试脚本功能主要实现链接数据库、创建表、插入数据、查询数据等)

  附原脚本:

   #!/usr/bin/python

    import psycopg2
    conn = psycopg2.connect(database="postgres", user="omm2", password="P@ssw0rd123", host="192.168.52.3", port="26000")
    cur = conn.cursor()
    #创建表COMPANY1
    cur.execute('''CREATE TABLE COMPANY1
           (ID INT PRIMARY KEY     NOT NULL,
           NAME           TEXT    NOT NULL,
           AGE            INT     NOT NULL,
           ADDRESS        CHAR(50),
           SALARY         REAL);''')
           
    #插入数据       
    cur.execute("INSERT INTO COMPANY1 (ID,NAME,AGE,ADDRESS,SALARY) \
          VALUES (1, 'Paul', 32, 'California', 20000.00 )");
    cur.execute("INSERT INTO COMPANY1 (ID,NAME,AGE,ADDRESS,SALARY) \
          VALUES (2, 'Allen', 25, 'Texas', 15000.00 )");
    cur.execute("INSERT INTO COMPANY1 (ID,NAME,AGE,ADDRESS,SALARY) \
          VALUES (3, 'Teddy', 23, 'Norway', 20000.00 )");
    cur.execute("INSERT INTO COMPANY1 (ID,NAME,AGE,ADDRESS,SALARY) \
          VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 )");       
          
    #查询结果
    cur.execute("SELECT id, name, address, salary  from COMPANY1")
    rows = cur.fetchall()
    for row in rows:
       print("ID = ", row[0])
       print("NAME = ", row[1])
       print("ADDRESS = ", row[2])
       print("SALARY = ", row[3])
    conn.commit()
    conn.close()

  执行python脚本:打开(cmd)终端窗口, 执行命令“python new2.py”,如下截图。

  如上出现以上结果, 则表示python链接数据库成功,执行创建表、插入数据、查询数据成功。

  六、问题总结(FAQ)

  1、python 环境变量配置参考:

  2、打开(cmd)终端窗口,输入pip,遇到:‘pip’不是内部或外部命令,也不是可运行的程序或批处理文件。即下图这种情况:

  解决办法:添加环境变量。复制python安装目录 的路劲, 调价到 Path下(参考上文python安装时配置环境变量的图示)。

  3、在执行python脚本时,如果报错::No module named ‘.’。 则需要执行pip 命令, 下载安装模块。

  4、在链接数据库时,提示:Forbid remote with user ,意思是禁止用初始用户进行远程连接,即不要使用数据库默认的omm用户访问。

  5、(接口)参考

  接口是一套提供给用户的API方法。

  1).() :此方法创建新的数据库会话并返回新的对象。

  原型:

  conn=.(dbname=“test”,user=“”,=“secret”,host=“127.0.0.1”,port=“5432”)

  返回值:对象(连接数据库实例的对象)。

  参数 :

  关键字 参数说明

  dbname 数据库名称。

  user 用户名。

   密码。

  host 数据库IP地址,默认为UNIX socket类型。

  port 连接端口号,默认为5432。

   ssl模式,ssl连接时用。

   客户端证书路径,ssl连接时用。

  sslkey 客户端密钥路径,ssl连接时用。

   根证书路径,ssl连接时用。

  2).cursor():此方法用于返回新的cursor对象。

  原型:

  cursor(name=None, =None, =None, =False)

  返回值 :cursor对象(用于整个数据库使用Python编程的cursor)。

  参数 :

  关键字 参数说明

  name cursor名称,默认为None。

   用于创造非标准cursor,默认为None。

   设置SCROLL选项,默认为None。

   设置HOLD选项,默认为False。

  3)cursor.(query,) :此方法执行被参数化的SQL语句(即占位符,而不是SQL文字)。模块支持用%s标志的占位符。

  原型

  curosr.(query,)

  参数:

  关键字 参数说明

  query 待执行的sql语句。

   变量列表,匹配query中%s占位符。

  4)cursor.():此方法获取查询结果的所有(剩余)行,并将它们作为元组列表返回。

  原型:

  cursor.()

  5).commit():此方法将当前挂起的事务提交到数据库。注意: 默认情况下,在执行第一个命令之前打开一个事务:如果不调用commit(),任何数据操作的效果都将丢失。

  原型:

  .commit()

  6).close():此方法关闭数据库连接。注意: 此方法关闭数据库连接,并不自动调用commit()。如果只是关闭数据库连接而不调用commit()方法,那么所有更改将会丢失。

  原型:

  .close()

本文共 1623 个字数,平均阅读时长 ≈ 5分钟