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笔记(叁)继续学习
Oct 24 Python
python实现连接mongodb的方法
May 08 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
Sep 28 Python
python json.loads兼容单引号数据的方法
Dec 19 Python
Python基于scipy实现信号滤波功能
May 08 Python
python 的 scapy库,实现网卡收发包的例子
Jul 23 Python
django fernet fields字段加密实践详解
Aug 12 Python
pygame实现俄罗斯方块游戏(基础篇3)
Oct 29 Python
利用python绘制数据曲线图的实现
Apr 09 Python
Python基于traceback模块获取异常信息
Jul 23 Python
Python中对象的比较操作==和is区别详析
Feb 12 Python
python爬取新闻门户网站的示例
Apr 25 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
默默简单的写了一个模板引擎
2007/01/02 PHP
php 前一天或后一天的日期
2008/06/28 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
2015/03/18 PHP
PHP 搜索查询功能实现
2016/11/29 PHP
Thinkphp3.2实用篇之计算型验证码示例
2017/02/09 PHP
浏览器解析js生成的html出现样式问题的解决方法
2012/04/16 Javascript
Java File类的常用方法总结
2015/03/18 Javascript
javascript实现仿腾讯游戏选择
2015/05/14 Javascript
jQuery子元素过滤选择器用法示例
2016/09/09 Javascript
利用jquery如何从json中读取数据追加到html中
2017/12/01 jQuery
Vue Router的懒加载路径的解决方法
2018/06/21 Javascript
解决Angular2 router.navigate刷新页面的问题
2018/08/31 Javascript
JavaScript 对引擎、运行时、调用堆栈的概述理解
2018/10/22 Javascript
Flutter 超实用简单菜单弹出框 PopupMenuButton功能
2019/08/06 Javascript
详解python中executemany和序列的使用方法
2017/08/12 Python
使用Python实现博客上进行自动翻页
2017/08/23 Python
python基于twisted框架编写简单聊天室
2018/01/02 Python
python使用tkinter实现简单计算器
2018/01/30 Python
python+webdriver自动化环境搭建步骤详解
2019/06/03 Python
Python K最近邻从原理到实现的方法
2019/08/15 Python
Python openpyxl模块原理及用法解析
2020/01/19 Python
Python通过字典映射函数实现switch
2020/11/06 Python
使用python操作lmdb对数据读取的实例
2020/12/11 Python
Python实现Kerberos用户的增删改查操作
2020/12/14 Python
美国医生配方营养补充剂供应商:Healthy Directions
2019/07/10 全球购物
教师实习自我鉴定
2013/12/18 职场文书
年会活动策划方案
2014/01/23 职场文书
国家领导干部党的群众路线教育实践活动批评与自我批评材料
2014/09/23 职场文书
六五普法宣传标语
2014/10/06 职场文书
2014年标准化工作总结
2014/12/17 职场文书
复试通知单模板
2015/04/24 职场文书
2015年领导干部廉洁自律工作总结
2015/05/26 职场文书
芙蓉镇观后感
2015/06/10 职场文书
山楂树之恋观后感
2015/06/11 职场文书
mysql主从复制的实现步骤
2021/10/24 MySQL
前端canvas中物体边框和控制点的实现示例
2022/08/05 Javascript