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执行等待程序直到第二天零点的方法
Apr 23 Python
Python的Django框架中消息通知的计数器实现教程
Jun 13 Python
使用python批量化音乐文件格式转换的实例
Jan 09 Python
python dlib人脸识别代码实例
Apr 04 Python
Python循环中else,break和continue的用法实例详解
Jul 11 Python
Tensorflow实现酸奶销量预测分析
Jul 19 Python
用Python徒手撸一个股票回测框架搭建【推荐】
Aug 05 Python
Python单元测试与测试用例简析
Nov 09 Python
PyTorch实现ResNet50、ResNet101和ResNet152示例
Jan 14 Python
PYQT5 vscode联合操作qtdesigner的方法
Mar 24 Python
Python分类测试代码实例汇总
Jul 23 Python
selenium设置浏览器为headless无头模式(Chrome和Firefox)
Jan 08 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字符串截取中文截取2,单字节截取模式
2007/12/10 PHP
Linux下 php5 MySQL5 Apache2 phpMyAdmin ZendOptimizer安装与配置[图文]
2008/11/18 PHP
几种延迟加载JS代码的方法加快网页的访问速度
2013/10/12 Javascript
DOM基础教程之事件类型
2015/01/20 Javascript
Javascript之BOM(window对象)详解
2016/05/25 Javascript
jquery.qtip提示信息插件用法简单实例
2016/06/17 Javascript
JS求解三元一次方程组值的方法
2017/01/03 Javascript
js从输入框读取内容,比较两个数字的大小方法
2017/03/13 Javascript
基于jquery实现五星好评
2017/11/18 jQuery
微信小程序支付功能 php后台对接完整代码分享
2018/06/12 Javascript
JavaScript函数apply()和call()用法与异同分析
2018/08/10 Javascript
Node.js系列之发起get/post请求(2)
2019/08/30 Javascript
vue中实现点击按钮滚动到页面对应位置的方法(使用c3平滑属性实现)
2019/12/29 Javascript
关于你不想知道的所有Python3 unicode特性
2014/11/28 Python
Python多进程库multiprocessing中进程池Pool类的使用详解
2017/11/24 Python
python实现ID3决策树算法
2017/12/20 Python
浅谈python str.format与制表符\t关于中文对齐的细节问题
2019/01/14 Python
基于python实现matlab filter函数过程详解
2020/06/08 Python
python3 os进行嵌套操作的实例讲解
2020/11/19 Python
Philosophy美国官网:美国美容品牌
2016/08/15 全球购物
世界上最好的儿童品牌:AlexandAlexa
2018/01/27 全球购物
计算机专业应届生求职信
2014/04/06 职场文书
企业文化理念标语
2014/06/10 职场文书
公务员爱岗敬业演讲稿
2014/08/26 职场文书
新员工考核评语
2014/12/31 职场文书
打架检讨书
2015/01/27 职场文书
医院志愿者活动总结
2015/05/06 职场文书
暑假生活随笔
2015/08/15 职场文书
2019年大学生职业生涯规划书最新范文
2019/03/25 职场文书
2019学生会干事辞职信
2019/06/27 职场文书
Mysql - 常用函数 每天积极向上
2021/04/05 MySQL
oracle DGMGRL ORA-16603报错的解决方法(DG Broker)
2021/04/06 Oracle
React配置子路由的实现
2021/06/03 Javascript
基于Python实现一个春节倒计时脚本
2022/01/22 Python
python数据处理之Pandas类型转换
2022/04/28 Python
使用Nginx的访问日志统计PV与UV
2022/05/06 Servers