python连接PostgreSQL过程解析


Posted in Python onFebruary 09, 2020

这篇文章主要介绍了python连接PostgreSQL过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

1. 常用模块

# 连接数据库

connect()函数创建一个新的数据库连接对话并返回一个新的连接实例对象

PG_CONF_123 = {
  'user':'emma',
  'port':123,
  'host':'192.168.1.123',
  'password':'emma',
  'database':'dbname'}
conn = psycopg2.connect(**PG_CONF_123)

# 打开一个操作整个数据库的光标

连接对象可以创建光标用来执行SQL语句

cur = conn.cursor()

# 执行一个创建表的SQL语句

光标可以使用execute()和executemany()函数

cur.execute("CREATE TABLE test (id serial PRIMARY KEY, num integer, data varchar);")

# 传递参数给插入语句

cur.execute("INSERT INTO test (num, data) VALUES (%s, %s)",(100, "abc'def"))

# 执行查询语句并将获取到的数据作为python对象

cur.execute("SELECT * FROM test;")
cur.fetchone()
(1, 100, "abc'def")

# 提交修改

如果只使用查询语句不用commit方法,insert/update/delete等操作需要调用commit()。rollback()函数用于会滚到上次调用commit()方法之后。

conn.commit()

# 关闭数据库连接

cur.close()
conn.close()

2. 防范SQL注入漏洞

典型的SQL注入漏洞形式:

SQL = "select * from userinfo where id = '%s'" % (id)

SQL = "select * from userinfo where id = '{}'".format(id)

如果有人恶意攻击,在传入参数的代码中加入恶意代码,如:

request.id = '123; drop tabel userid;'

会造成严重风险,为防止此问题,应该通过第二位变量传入参数的方法:%s(无论变量是什么数据类型,都使用%s)

SQL = "INSERT INTO authors (name) VALUES (%s);" # Note: no quotes
data = ("O'Reilly", )
cur.execute(SQL, data) # Note: no % operator

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python正则表达式中的括号匹配问题
Dec 14 Python
Python判断某个用户对某个文件的权限
Oct 13 Python
wxPython的安装图文教程(Windows)
Dec 28 Python
使用python爬取B站千万级数据
Jun 08 Python
对pandas通过索引提取dataframe的行方法详解
Feb 01 Python
numpy concatenate数组拼接方法示例介绍
May 27 Python
用pycharm开发django项目示例代码
Jun 13 Python
bluepy 一款python封装的BLE利器简单介绍
Jun 25 Python
pyinstaller还原python代码过程图解
Jan 08 Python
Python双链表原理与实现方法详解
Feb 22 Python
如何理解python中数字列表
May 29 Python
Pandas 数据编码的十种方法
Apr 20 Python
Python +Selenium解决图片验证码登录或注册问题(推荐)
Feb 09 #Python
python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
Feb 09 #Python
python 爬取疫情数据的源码
Feb 09 #Python
python代码如何实现余弦相似性计算
Feb 09 #Python
python字符串替换re.sub()实例解析
Feb 09 #Python
Python随机数函数代码实例解析
Feb 09 #Python
Python如何访问字符串中的值
Feb 09 #Python
You might like
2020年4月放送决定!第2期TV动画《邪神酱飞踢》视觉图&主题曲情报公开!
2020/03/06 日漫
PHP4(windows版本)中的COM函数
2006/10/09 PHP
php+mysql实现无限级分类 | 树型显示分类关系
2006/11/19 PHP
php download.php实现代码 跳转到下载文件(response.redirect)
2009/08/26 PHP
PHP 获取客户端真实IP地址多种方法小结
2010/05/15 PHP
php中通过DirectoryIterator删除整个目录的方法
2015/03/13 PHP
CI映射(加载)数据到view层的方法
2016/03/28 PHP
Json_decode 解析json字符串为NULL的解决方法(必看)
2017/02/17 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
PHP示例演示发送邮件给某个邮箱
2019/04/03 PHP
深入解析JavaScript中的变量作用域
2013/12/06 Javascript
javascript对话框使用方法(警告框 javascript确认框 提示框)
2014/01/07 Javascript
javascript实现九宫格相加数值相等
2020/05/28 Javascript
Bootstrap下拉菜单效果实例代码分享
2016/06/30 Javascript
Bootstrap Validator 表单验证
2016/07/25 Javascript
修改jquery中dialog的title属性方法(推荐)
2016/08/26 Javascript
JS声明式函数与赋值式函数实例分析
2016/12/13 Javascript
jQuery操作DOM_动力节点Java学院整理
2017/07/04 jQuery
详解React Native 屏幕适配(炒鸡简单的方法)
2018/06/11 Javascript
详解微信小程序调起键盘性能优化
2018/07/24 Javascript
vue学习笔记五:在vue项目里面使用引入公共方法详解
2019/04/04 Javascript
Ajax请求时无法重定向的问题解决代码详解
2019/06/21 Javascript
node删除、复制文件或文件夹示例代码
2019/08/13 Javascript
原生js实现滑块区间组件
2021/01/20 Javascript
python实现pdf转换成word/txt纯文本文件
2018/06/07 Python
基于anaconda下强大的conda命令介绍
2018/06/11 Python
Python实现计算对象的内存大小示例
2019/07/10 Python
对Pytorch 中的contiguous理解说明
2021/03/03 Python
html5记忆翻牌游戏实现思路及代码
2013/07/25 HTML / CSS
会计助理的岗位职责
2013/11/29 职场文书
打架检讨书100字
2014/01/08 职场文书
我的求职择业计划书
2014/04/04 职场文书
慈善捐赠倡议书
2014/08/30 职场文书
报表员工作失误检讨书范文
2014/09/19 职场文书
教师批评与自我批评心得体会
2014/10/16 职场文书
老人再婚离婚协议书范本
2014/10/27 职场文书