这篇文章主要介绍了python连接PostgreSQL过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
1。常用模块
#连接数据库
connect()函数创建一个新的数据库连接对话并返回一个新的连接实例对象
PG_CONF_123={ “用户”:“艾玛”, “端口”:123年, “主机”:“192.168.1.123”, “密码”:“艾玛”, “数据库”:“dbname '} 康涅狄格州=psycopg2.connect (* * PG_CONF_123)
#打开一个操作整个数据库的光标
连接对象可以创建光标用来执行SQL语句
坏蛋=conn.cursor ()
#执行一个创建表的SQL语句
光标可以使用execute()和executemany()函数
cur.execute(“创建表测试(id序列主键、num整数数据varchar);”)
#传递参数给插入语句
cur.execute(“插入测试(num、数据)值(% s % s)”“abc 'def”), (100)
#执行查询语句并将获取到的数据作为python对象
cur.execute (“SELECT *从测试;“) cur.fetchone () “abc 'def”(100)
#提交修改
如果只使用查询语句不用提交方法,插入/更新/删除等操作需要调用commit () .rollback()函数用于会滚到上次调用commit()方法之后。
conn.commit ()
#关闭数据库连接
cur.close () conn.close ()
2。防范SQL注入漏洞
典型的SQL注入漏洞形式:
SQL=" select *从用户信息id=? s”% (id)
SQL=" select *从用户信息id={}”.format (id)
如果有人恶意攻击,在传入参数的代码中加入恶意代码,如:
请求。id=123;下降tabel userid,“
会造成严重风险,为防止此问题,应该通过第二位变量传入参数的方法:% s(无论变量是什么数据类型,都使用% s)
SQL="插入作者(姓名)值(% s);“#注意:没有引号 data=https://www.yisu.com/zixun/(O ' reilly,) cur.execute (SQL数据)#注:没有%运算符
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。