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 相关文章推荐
操作Windows注册表的简单的Python程序制作教程
Apr 07 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
Nov 01 Python
Django + Uwsgi + Nginx 实现生产环境部署的方法
Jun 20 Python
python判断设备是否联网的方法
Jun 29 Python
Python 运行 shell 获取输出结果的实例
Jan 07 Python
numpy中的ndarray方法和属性详解
May 27 Python
Python中 CSV格式清洗与转换的实例代码
Aug 29 Python
Python搭建代理IP池实现存储IP的方法
Oct 27 Python
python 用 xlwings 库 生成图表的操作方法
Dec 22 Python
Python如何合并多个字典或映射
Jul 24 Python
Django扫码抽奖平台的配置过程详解
Jan 14 Python
Python使用paramiko连接远程服务器执行Shell命令的实现
Mar 04 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
php下将XML转换为数组
2010/01/01 PHP
解析使用substr截取UTF-8中文字符串出现乱码的问题
2013/06/20 PHP
Smarty实现页面静态化(生成HTML)的方法
2016/05/23 PHP
thinkphp5实现无限级分类
2019/02/18 PHP
jquery ajax请求实例深入解析
2012/11/26 Javascript
如何获取JQUERY AJAX返回的JSON结果集实现代码
2012/12/10 Javascript
用按钮控制iframe显示的网页实现方法
2013/02/04 Javascript
jq实现左滑显示删除按钮,点击删除实现删除数据功能(推荐)
2016/08/23 Javascript
JS实现焦点图轮播效果的方法详解
2016/12/19 Javascript
微信小程序开发探究
2016/12/27 Javascript
bootstrap中模态框、模态框的属性实例详解
2017/02/17 Javascript
es6学习之解构时应该注意的点
2017/08/29 Javascript
深入理解Node内建模块和对象
2019/03/12 Javascript
ES6中定义类和对象的方法示例
2019/07/31 Javascript
浅谈Vue项目骨架屏注入实践
2019/08/05 Javascript
关于layui的下拉搜索框异步加载数据的解决方法
2019/09/28 Javascript
vue 自定义右键样式的实例代码
2019/11/06 Javascript
ES6中Promise的使用方法实例总结
2020/02/18 Javascript
vue实现div单选多选功能
2020/07/16 Javascript
CentOS 8.2服务器上安装最新版Node.js的方法
2020/12/16 Javascript
Python装饰器入门学习教程(九步学习)
2016/01/28 Python
快速实现基于Python的微信聊天机器人示例代码
2017/03/03 Python
python中实现延时回调普通函数示例代码
2017/09/08 Python
python+selenium实现登录账户后自动点击的示例
2017/12/22 Python
python3+PyQt5重新实现自定义数据拖放处理
2018/04/19 Python
Python + selenium + crontab实现每日定时自动打卡功能
2020/03/31 Python
Python学习之路之pycharm的第一个项目搭建过程
2020/06/18 Python
css3 flex布局 justify-content:space-between 最后一行左对齐
2020/01/02 HTML / CSS
澳大利亚领先的美容护肤品零售商之一:SkincareStore
2018/01/22 全球购物
英国剑桥包中文官网:The Cambridge Satchel Company中国
2018/11/06 全球购物
销售业务实习自我鉴定
2013/09/23 职场文书
工作分析计划书
2014/04/30 职场文书
学校食堂标语
2014/10/06 职场文书
2015元旦主持词开场白和结束语
2014/12/14 职场文书
挂职锻炼个人总结
2015/03/05 职场文书
mysql升级到5.7时,wordpress导数据报错1067的问题
2021/05/27 MySQL