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抓取手机号归属地信息示例代码
Nov 28 Python
Python如何import文件夹下的文件(实现方法)
Jan 24 Python
利用selenium 3.7和python3添加cookie模拟登陆的实现
Nov 20 Python
python使用pil库实现图片合成实例代码
Jan 20 Python
python实现批量注册网站用户的示例
Feb 22 Python
python版百度语音识别功能
Jul 09 Python
Python使用进程Process模块管理资源
Mar 05 Python
python 的topk算法实例
Apr 02 Python
Python Dataframe常见索引方式详解
May 27 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
Nov 28 Python
浅谈Python数学建模之线性规划
Jun 23 Python
Python调用腾讯API实现人脸身份证比对功能
Apr 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创建自己的Composer包方法
2018/04/09 PHP
PHP时间函数使用详解
2019/03/21 PHP
PHP 使用位运算实现四则运算的代码
2021/03/09 PHP
JavaScript 变量命名规则
2009/09/23 Javascript
javascript 多种搜索引擎集成的页面实现代码
2010/01/02 Javascript
各浏览器对link标签onload/onreadystatechange事件支持的差异分析
2011/04/27 Javascript
js解决弹窗问题实现班级跳转DIV示例
2014/01/06 Javascript
jquery获取多个checkbox的值异步提交给php
2015/07/07 Javascript
JS获取数组最大值、最小值及长度的方法
2015/11/24 Javascript
JS组件Bootstrap按钮组与下拉按钮详解
2016/05/10 Javascript
Bootstrap精简教程中秋大放送
2016/09/15 Javascript
利用iscroll4实现轮播图效果实例代码
2017/01/11 Javascript
Vue.js实现移动端短信验证码功能
2017/03/29 Javascript
Vue.js实战之使用Vuex + axios发送请求详解
2017/04/04 Javascript
JS验证码实现代码
2017/09/14 Javascript
Angular实现可删除并计算总金额的购物车功能示例
2017/12/26 Javascript
实现一个 Vue 吸顶锚点组件方法
2019/07/10 Javascript
vue 使用v-for进行循环的实例代码详解
2020/02/19 Javascript
python算法学习之桶排序算法实例(分块排序)
2013/12/18 Python
Python2.x版本中maketrans()方法的使用介绍
2015/05/19 Python
Python验证码识别的方法
2015/07/10 Python
Python3访问并下载网页内容的方法
2015/07/28 Python
解决pandas使用read_csv()读取文件遇到的问题
2018/06/15 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
2018/11/16 Python
python读取csv和txt数据转换成向量的实例
2019/02/12 Python
python按顺序重命名文件并分类转移到各个文件夹中的实现代码
2020/07/21 Python
python logging模块的使用详解
2020/10/23 Python
python 根据列表批量下载网易云音乐的免费音乐
2020/12/03 Python
HTML5新增的表单元素和属性实例解析
2014/07/07 HTML / CSS
美国NBA官方商店:NBA Store
2019/04/12 全球购物
Hammitt官网:设计师手袋
2020/05/23 全球购物
Unix里面如何在后台运行程序
2016/10/14 面试题
试用期转正鉴定评语
2014/01/27 职场文书
python 如何在list中找Topk的数值和索引
2021/05/20 Python
吉利入股戴姆勒后smart“长大了”
2022/04/21 数码科技
服务器nginx权限被拒绝解决案例
2022/09/23 Servers