Python+request 使用pymysql连接数据库mysql的操作《十》
使用指南。pymysql支持python2.7同时也支持python3.x。当前我用的是python2.7。所以过断选择了pymysql的使用,这里注意几点。一般我们连接数据库为了安全起见,都会要求按照ssl的方式进行连接,但是为了操作和使用的方便,可以跟开发沟通通过添加白名单的方式,连接某个网络,将此网络的IP添加到白名单中,就可以不用ssl的方式连接数据库,直接使用:dbname,host,username,password的方式连接数据库,方便操作。
连接数据库:
(查询数据)示例代码如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Author:lucky,time:2019-06-11 import pymysql,sys
import readConfig
import json
#连接数据库
db = pymysql.connect(host=readConfig.host,user = readConfig.user,passwd=readConfig.passwd,db=readConfig.db) #db:库名
#创建游标
# cur = db.cursor() #创建游标,结果将已字典的形式返回
cur = db.cursor(pymysql.cursors.DictCursor) # sql = "select bs.uuid,bs.target_type,bs.source,bs.user_uuid,bs.agent_uuid from `behavior_share` bs join user u on u.uuid = bs.user_uuid where u.mobile = '12606666333'"
#查询lcj表中存在的数据
sql = "select bs.uuid,bs.agent_uuid from `behavior_share` bs join user u on u.uuid = bs.user_uuid where u.mobile = '12606666333'" cur.execute(sql)
#fetchall:获取lcj表中所有的数据
ret1 = cur.fetchall()
print(ret1)
打印结果:

进阶模式:
将数据库的配置信息写到ini文件中,通过调用,在py文件中显示,方便配置信息的统一管理,也避免了后期更改数据库的host后,要修改很多地方。
(1)创建cfg.ini文件。写的内容如下:
[Test_Env_mysql]
##############此类信息向开发获取#################
host = ***********************
user = iber_php
passwd = *************
db = iber2_admin
(2)创建 readConfig.py 文件,读取ini的配置信息
#!/usr/bin/env python
# coding=UTF-8 '''此文件主要是获取cfg.ini中对应的配置信息'''
import os
import ConfigParser cur_path = os.path.dirname(os.path.realpath(__file__))
configpath = os.path.join(cur_path,"cfg.ini")
conf = ConfigParser.ConfigParser()
conf.read(configpath) #############获取到mysql的相关信息##################
host = conf.get("Test_Env_mysql","host")
user = conf.get("Test_Env_mysql","user")
passwd = conf.get("Test_Env_mysql","passwd")
db = conf.get("Test_Env_mysql","db")
(3)在使用的 attach_mysql.py 文件中直接调用
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Author:lucky,time:2019-06-11 import pymysql,sys
import readConfig
import json
#连接数据库
db = pymysql.connect(host=readConfig.host,user = readConfig.user,passwd=readConfig.passwd,db=readConfig.db) #db:库名 ..........剩下的信息更上方的((查询数据)示例代码如下:)写法一致。
数据库获取结果的几种常见方式;
示例一:
sql = "select bs.uuid,bs.agent_uuid from `behavior_share` bs join user u on u.uuid = bs.user_uuid where u.mobile = '12606666333'" cur.execute(sql)
#fetchall:获取lcj表中所有的数据
ret1 = cur.fetchall()
print(ret1) #获取所有的查询结果,此处的类型是列表
print len(ret1) #获取所有结果的条数
print ret1[0] #获取所得结果为0下标的字典
print type(ret1[0]) #此处的类型是字典
print ret1[0]["uuid"] #获取所得结果为0下标的字典中的某个值
打印结果:

实例二:
获取某行的数据。
sql = "select bs.uuid,bs.agent_uuid from `behavior_share` bs join user u on u.uuid = bs.user_uuid where u.mobile = '12606666333'" cur.execute(sql) print cur.fetchmany(1) #获取查询结果的前一行的数据
print cur.fetchmany(2) #获取查询结果的前二行的数据
打印结果:

Python+request 使用pymysql连接数据库mysql的操作《十》的更多相关文章
- Python+request 使用pymysql连接数据库mysql的操作,基础篇《十一》
笔记记录: (1)pymysql中所有的有关更新数据(insert,update,delete)的操作都需要commit,否则无法将数据提交到数据库,既然有了commit(),就一定有对应的rollb ...
- python使用MySQLdb实现连接数据库Mysql
python实现连接数据库mysql的步骤: 一.引入MySQLdb 二.获取与数据库的连接 三.执行SQL语句和存储过程 四.关闭数据库连接 1.什么是MySQLdb? MySQLdb是用于pyth ...
- 案例学python——案例二:连接数据库MySql
调侃的话:案例一跑完之后,欣赏把玩了一番.人就有点飘飘然,昨天除了做饭吃饭,就是玩三国杀,江郎才尽,今天周一,不飘了,敲点代码,看看Python操作数据库有啥不一样的. 前期准备: 1.数据库 电脑上 ...
- python 3.6 +pyMysql 操作mysql数据库
版本信息:python:3.6 mysql:5.7 pyMysql:0.7.11 ########################################################### ...
- python + pymysql连接数据库报“(2003, "Can't connect to MySQL server on 'XXX数据库地址' (timed out)")”
python + pymysql连接数据库报"(2003, "Can't connect to MySQL server on 'XXX数据库地址' (timed out)&quo ...
- python(pymysql)之mysql简单操作
一.mysql简单介绍 说到数据库,我们大多想到的是关系型数据库,比如mysql.oracle.sqlserver等等,这些数据库软件在windows上安装都非常的方便,在Linux上如果要安装数据库 ...
- 使用Python对MySQL数据库操作
本文介绍Python3使用PyMySQL连接数据库,并实现简单的增删改查. 什么是PyMySQL? PyMySQL是Python3.x版本中用于连接MySQL服务器的一个库,Python2.x中则使用 ...
- Python 对Mysql的操作
Mysql链接不同的数据库 如果python的模板是按照mysql来写的,后面数据库更换为了Oracle,难道需要重现再来写,当然不是,python提供了API接口,只要编写是面对api,后面的链接会 ...
- Python数据存储 — MySQL数据库操作
本地安装MySQL 调试环境python3.6,调试python操作mysql数据库,首先要在本地或服务器安装mysql数据库. 安装参考:https://mp.csdn.net/postedit/8 ...
随机推荐
- Ubuntu 中改变文件的默认打开方式(转)
源自:Ubuntu 中改变文件的默认打开方式 1. 相关配置文件 全局配置 /etc/gnome/defaults.list /usr/share/applications/mimeinfo.cac ...
- Vue零碎总结
1.Vue指令里的bind钩子是生成了vnode,但是将它插入/更新到浏览器dom树之前的操作,因此对于一些需要插入dom树后执行的操作它是不支持的,如el.focus()方法,这些要放在insert ...
- CSS3 实现别样图型
1.爱心 利用 div 的正方形和伪类的圆型组合而成 <!DOCTYPE html> <html> <head> <meta charset="UT ...
- SQLServer分页查询方法整理以及批量插入操作SqlBulkCopy
分页查询 通用方法:sqlserver 2005 + ROW_NUMBER() OVER()方式: ; TOP NOT IN方式 : ID FROM TripDetail ORDER BY ID) O ...
- Mac中设置Sublime快速在终端中使用命令打开项目
工作中用Atom比较多,比较喜欢Atom可以直接在终端中直接输入atom .就能直接打开项目的功能,于是搜索得知sublime text也有这样的功能,下面就简单的配置了一下: sudo ln -s ...
- 【工具】导入导出 Excel
文章目录 前言 当前支持的功能 方法api 配置 如何使用(Demo) 实现思路(该工具类可正确的一个大前提) 后记 前言 之前写的项目中,有个需求,需要导出导入Excel表格: 本来很简单的一件事, ...
- c++中继承的使用
1.c++中继承有公有继承,保护继承,私有继承 定义个基类: #include using namespace std; class Base { public: void display() { c ...
- 面向对象分析与设计—OOA部分
第二部分 面向对象分析 2.1 面向对象分析(OOA)的定义? OOA——面向对象的分析,就是运用面向对象方法进行系统分析,对问题域(问题所涉及的范围)和系统责任(所开发的系统应具备的职能)进行分析与 ...
- docker 实践十一:docker 跨主机通讯
在上一篇了解了关于 docker 的网络模型后,本篇就基于上一篇的基础来实现 docker 的跨主机通信. 注:环境为 CentOS7,docker 19.03. 本篇会尝试使用几种不同的方式来实现跨 ...
- windows下使用linux terminal
windows下使用linux terminal 1.下载安装包 2.安装 3.解决乱码 0.前言 其实,写这个的目的是怕自己忘了,方便以后配置和分享 1.下载安装包 安装包下载地址: http:// ...