python连接PostgreSQL过程解析
这篇文章主要介绍了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将mdb数据库文件导入postgresql数据库示例
mdb格式文件可以通过mdbtools工具将内中包含的每张表导出到csv格式文件.由于access数据库和postgresQL数据库格式上会存在不通性,所以使用python的文件处理,将所得csv文件修改成正确.能识别的格式. 导入脚本说明(此脚本运行于linux): 1.apt-get install mdbtools,安装mdbtools工具 2.将mdb 文件拷贝到linux虚拟机中,修改脚本中mdb文件目录'dir' 3.修改服务器及数据库配置 4.执行脚本 复制代码 代码如下: # -
-
Python使用PyGreSQL操作PostgreSQL数据库教程
PostgreSQL是一款功能强大的开源关系型数据库,本文使用python实现了对开源数据库PostgreSQL的常用操作,其开发过程简介如下: 一.环境信息: 1.操作系统: RedHat Enterprise Linux 4 Windows XP SP2 2.数据库: PostgreSQL8.3 3. 开发工具: Eclipse+Pydev+python2.6+PyGreSQL(提供pg模块) 4.说明: a.PostgreSQL数据库运行于RedHat Linux上,Win
-
Python随机生成数据后插入到PostgreSQL
用Python随机生成学生姓名,三科成绩和班级数据,再插入到PostgreSQL中. 模块用psycopg2 random import random import psycopg2 fname=['金','赵','李','陈','许','龙','王','高','张','侯','艾','钱','孙','周','郑'] mname=['玉','明','玲','淑','偑','艳','大','小','风','雨','雪','天','水','奇','鲸','米','晓','泽','恩','葛','玄'
-
Python实现连接postgresql数据库的方法分析
本文实例讲述了Python实现连接postgresql数据库的方法.分享给大家供大家参考,具体如下: python可以通过第三方模块连接postgresql. 比较有名的有psycopg2和python3-postgresql (一)psycopg2 ubuntu下安装 sudo apt-get install python3-psycopg2 创建一个test.py文件 import psycopg2 # 数据库连接参数 conn = psycopg2.connect(database="te
-
Python中用psycopg2模块操作PostgreSQL方法
其实在Python中可以用来连接PostgreSQL的模块很多,这里比较推荐psycopg2.psycopg2安装起来非常的简单(pip install psycopg2),这里主要重点介绍下如何使用. 安装psycopg2模块: 怎么验证是否已经安装过psycopy2? 编写上面代码,运行看是否抛出缺少psycopg2模块. 安装方法1: 1)使用psycopg2-2.4.2.win-amd64-py2.7-pg9.0.4-release.exe安装,下载地址:http://vdisk.wei
-
python 两个数据库postgresql对比
这篇文章主要介绍了python 两个数据库postgresql对比,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 比较两个postgresql数据库,原理 比较数据库中各表的大小 1. 数据库查询语句 2. python字典比较 import psycopg2 import sys class PdbModel: def __init__(self, host, dbname, username='postgres', password='po
-
Python连接PostgreSQL数据库的方法
前言 其实在Python中可以用来连接PostgreSQL的模块很多,这里比较推荐psycopg2.psycopg2安装起来非常的简单(pip install psycopg2),这里主要重点介绍下如何使用. 连接数据库: import psycopg2 conn = psycopg2.connect(host="10.100.157.168",user="postgres",password="postgres",database="
-
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.cu
-
python连接PostgreSQL过程解析
这篇文章主要介绍了python连接PostgreSQL过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1. 常用模块 # 连接数据库 connect()函数创建一个新的数据库连接对话并返回一个新的连接实例对象 PG_CONF_123 = { 'user':'emma', 'port':123, 'host':'192.168.1.123', 'password':'emma', 'database':'dbname'} conn = p
-
Python连接字符串过程详解
这篇文章主要介绍了python连接字符串过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在python中,如果有多个字符串,想要连接在一起,或者说想要拼接在一起该如何操作,在此记录下. 1.通过 + 这个加号操作符,将字符串拼接在一起 >>> "First" + "Python" + "Lesson" 'FirstPythonLesson' >>> &
-
QML使用Python的函数过程解析
有2种方法: 一. QML中定义一个信号,连接Python里的函数: 这里的函数不用特意指明为槽函数,普通函数即可. QML的信号连接Python的函数 QML: 首先在QML中定义一个信号,这里的信号传递一个字符串给函数(信号可带参数也可不带): signal mySignal(string my_string) 然后在click中发射这个信号: onClicked:{ root.mySignal("hello world") } Python: 使用QML里的信号连接Python里
-
余弦相似性计算及python代码实现过程解析
A:西米喜欢健身 B:超超不爱健身,喜欢打游戏 step1:分词 A:西米/喜欢/健身 B:超超/不/喜欢/健身,喜欢/打/游戏 step2:列出两个句子的并集 西米/喜欢/健身/超超/不/打/游戏 step3:计算词频向量 A:[1,1,1,0,0,0,0] B:[0,1,1,1,1,1,1] step4:计算余弦值 余弦值越大,证明夹角越小,两个向量越相似. step5:python代码实现 import jieba import jieba.analyse def words2vec(wo
-
基于CentOS搭建Python Django环境过程解析
安装 setuptools 工具 任务时间:1min ~ 5min 安装 yum install python-setuptools -y 因为之后我们需要安装 Django ,而 Django 需要用这个工具,所以我们需要先安装 setuptools 工具. 下载与安装 Django 任务时间:5min ~ 20min 下载 Django [Django 是什么?] wget https://www.djangoproject.com/m/releases/1.11/Django-1.11.3
-
Abp.NHibernate连接PostgreSQl数据库的方法
Abp.NHibernate动态库连接PostgreSQl数据库,供大家参考,具体内容如下 初次接触Abp框架,其框架中封装的操作各类数据的方法还是很好用的,本人还在进一步的学习当中,并将利用abp.NHibernate类库操作PostgreSQL数据的相关方法做一记录,不足之处让评论指点扔砖. 话不多说,直接开干: 1.vs 新建一个项目,(窗体或者控制台程序或者测试程序) 2.NuGet 获取类库(adp.NHibernate) 还需安装一个pgSQl 对应的驱动 3.新建一个继承AbpMo
-
Python FTP文件定时自动下载实现过程解析
这篇文章主要介绍了Python FTP文件定时自动下载实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.需求: 某数据公司每日15:00~17:00之间,在其FTP发布当日数据供下载,我方需及时下载当日数据至指定本地目录. 二.分析: 1.需实现FTP登陆.查询.下载功能: 解答:使用内置的ftplib模块中FTP类: 2.需判断文件是否下载: 解答:使用os模块中path.exists方法: 3.需判断在指定时间段内才执行下载任
-
使用python远程操作linux过程解析
这篇文章主要介绍了使用python远程操作linux过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在云服务测试中,往往需要我们进入云服务内容进行相关内容的测试.这测试可以使用平台自身的noVNC.外部辅助xshell等工具连接到云服务内部进行测试. 但是在如此反复的测试操作中,就需要用到自动化测试方法去解决这方面的需求. 在python中我们可以通过第三方库paramiko,对linux的云服务器进行操作. 如下命令先行安装 pip
随机推荐
- iOS Swift读取本地json文件报错的解决方法
- GO语言数组和切片实例详解
- Linux中文件的五个查找命令总结
- PHP的消息通信机制测试实例
- Extjs中常用表单介绍与应用
- js制作带有遮罩弹出层实现登录注册表单特效代码分享
- 使用Jmail及Winwebmail发信时系统记录中的错误:502 Error: command ...
- J2EE项目代码编写规范分享
- js关于getImageData跨域问题的解决方法
- this.clientWidth和this.offsetWidth两个有什么不同
- 推荐一款PHP+jQuery制作的列表分页的功能模块
- Mysql数据库错误代码中文详细说明
- Ajax请求过程中下载文件在FireFox(火狐)浏览器下的兼容问题
- Jsp结合XML+XSLT将输出转换为Html格式
- javascript 数组学习资料收集
- Access数据库升级为SQL数据库的注意事项和方法
- jquery实现聚光灯效果的方法
- jQuery 插件实现随机自由弹跳气泡样式
- 纯jQuery实现前端分页功能
- JavaScript indexOf方法入门实例(计算指定字符在字符串中首次出现的位置)