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画图学习入门教程
Jul 01 Python
详解 Python 读写XML文件的实例
Aug 02 Python
Python中super函数的用法
Nov 17 Python
Python+树莓派+YOLO打造一款人工智能照相机
Jan 02 Python
解决python爬虫中有中文的url问题
May 11 Python
pandas 对每一列数据进行标准化的方法
Jun 09 Python
BP神经网络原理及Python实现代码
Dec 18 Python
django 通过url实现简单的权限控制的例子
Aug 16 Python
Python缓存技术实现过程详解
Sep 25 Python
python 使用pygame工具包实现贪吃蛇游戏(多彩版)
Oct 30 Python
Python3 虚拟开发环境搭建过程(图文详解)
Jan 06 Python
Python 中的函数装饰器和闭包详解
Feb 06 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/04/09 欧美动漫
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
2014/06/12 PHP
PHP stream_context_create()函数的使用示例
2015/05/12 PHP
php实现上传图片文件代码
2015/07/19 PHP
laravel 字段格式化 modle 字段类型转换方法
2019/09/30 PHP
jQuery对象和DOM对象相互转化
2009/04/24 Javascript
jquery CSS选择器笔记
2010/03/29 Javascript
网页图片延时加载的js代码
2010/04/22 Javascript
查看大图功能代码jquery版
2013/11/05 Javascript
jQuery实现鼠标可拖动调整表格列宽度
2014/05/26 Javascript
js拖拽的原型声明和用法总结
2016/04/04 Javascript
javascript中使用未定义变量或值的情况分析
2016/07/19 Javascript
ECMAScript6轮播图实践知识总结
2016/08/17 Javascript
select下拉框插件jquery.editable-select详解
2017/01/22 Javascript
微信小程序中的onLoad详解及简单实例
2017/04/05 Javascript
详解angularJS动态生成的页面中ng-click无效解决办法
2017/06/19 Javascript
基于js的变量提升和函数提升(详解)
2017/09/17 Javascript
vue-cli脚手架打包静态资源请求出错的原因与解决
2019/06/06 Javascript
layui监听下拉选框选中值变化的方法(包含监听普通下拉选框)
2019/09/24 Javascript
python出现"IndentationError: unexpected indent"错误解决办法
2017/10/15 Python
python的Tqdm模块的使用
2018/01/10 Python
Python实现的大数据分析操作系统日志功能示例
2019/02/11 Python
Python 数据可视化pyecharts的使用详解
2019/06/26 Python
Tensorflow限制CPU个数实例
2020/02/06 Python
python程序需要编译吗
2020/06/19 Python
在python中对于bool布尔值的取反操作
2020/12/11 Python
html通过canvas转成base64的方法
2019/07/18 HTML / CSS
现代家居用品及礼品:LBC Modern
2018/06/24 全球购物
保安员岗位职责
2013/11/17 职场文书
会计与审计专业自荐信范文
2014/03/15 职场文书
五水共治捐款倡议书
2014/05/14 职场文书
注册资产评估专业求职信
2014/07/16 职场文书
法人授权委托书范本
2014/09/17 职场文书
临时用工协议书范本
2014/10/29 职场文书
2019年关于小学生课外阅读情况的分析报告
2019/12/02 职场文书
【海涛dota解说】一房久违的影魔魂守二连发
2022/04/01 DOTA