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中for循环详解
Jan 17 Python
pymongo给mongodb创建索引的简单实现方法
May 06 Python
教你用Python脚本快速为iOS10生成图标和截屏
Sep 22 Python
Python之多线程爬虫抓取网页图片的示例代码
Jan 10 Python
Pycharm无法使用已经安装Selenium的解决方法
Oct 13 Python
Python中变量的输入输出实例代码详解
Jul 28 Python
python 修改本地网络配置的方法
Aug 14 Python
kafka-python 获取topic lag值方式
Dec 23 Python
python字符串下标与切片及使用方法
Feb 13 Python
python给视频添加背景音乐并改变音量的具体方法
Jul 19 Python
python 如何区分return和yield
Sep 22 Python
python上下文管理器异常问题解决方法
Feb 07 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 采集程序 常用函数
2008/12/18 PHP
DOM XPATH获取img src值的query
2013/09/23 PHP
php实现微信原生支付(扫码支付)功能
2018/05/30 PHP
php微信公众号开发之欢迎老朋友
2018/10/20 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
JQUERY THICKBOX弹出层插件
2008/08/30 Javascript
使用Jquery Aajx访问WCF服务(GET、POST、PUT、DELETE)
2012/03/16 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(三)情景对话中仿打字机输出文字
2013/01/23 Javascript
jquery的ajax请求全面了解
2013/03/20 Javascript
JS实现仿google、百度搜索框输入信息智能提示的实现方法
2015/04/20 Javascript
ECHO.js 纯javascript轻量级延迟加载的实例代码
2016/05/24 Javascript
利用css+原生js制作简单的钟表
2020/04/07 Javascript
js 能实现监听F5页面刷新子iframe 而父页面不刷新的方法
2016/11/09 Javascript
JS中如何实现Laravel的route函数详解
2017/02/12 Javascript
jQuery实现在HTML文档加载完毕后自动执行某个事件的方法
2017/05/08 jQuery
Angularjs中使用轮播图指令swiper
2017/05/30 Javascript
React组件生命周期详解
2017/07/03 Javascript
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
2018/04/17 jQuery
jquery UI实现autocomplete在获取焦点时得到显示列表功能示例
2019/06/04 jQuery
layui table设置某一行的字体颜色方法
2019/09/05 Javascript
[11:33]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第二场
2018/04/06 DOTA
Python中的hypot()方法使用简介
2015/05/18 Python
Python实现多态、协议和鸭子类型的代码详解
2019/05/05 Python
200行python代码实现2048游戏
2019/07/17 Python
python 画3维轨迹图并进行比较的实例
2019/12/06 Python
django框架使用views.py的函数对表进行增删改查内容操作详解【models.py中表的创建、views.py中函数的使用,基于对象的跨表查询】
2019/12/12 Python
python 经典数字滤波实例
2019/12/16 Python
Python3.7将普通图片(png)转换为SVG图片格式(网站logo图标)动起来
2020/04/21 Python
分享一枚pycharm激活码适用所有pycharm版本我的pycharm2020.2.3激活成功
2020/11/20 Python
快速一键生成Python爬虫请求头
2021/03/04 Python
高级电工工作职责
2013/11/21 职场文书
服装设计行业个人的自我评价
2013/12/20 职场文书
2015年政治教研组工作总结
2015/07/22 职场文书
年终奖金发放管理制度,中小企业适用,拿去救急吧!
2019/07/12 职场文书
使用golang编写一个并发工作队列
2021/05/08 Golang
python分分钟绘制精美地图海报
2022/02/15 Python