当前位置: 首页 > news >正文

网站做好了怎么做后台管理/做网站推广

网站做好了怎么做后台管理,做网站推广,厦门 做网站,微妙音门户网站建设本文主要讲解如何利用python中的pymysql库来对mysql数据库进行操作大家在转行项目中也可以加入这一步操作,提高逼格的同时还能简化流程正文开始:先看一下最常见的操作:从数据库中select需要的字段(对数据简单聚合处理)将查找的数据导出为本地…

cca83cd9273f448295bc519bebe90421.png

本文主要讲解如何利用python中的pymysql库来对mysql数据库进行操作

大家在转行项目中也可以加入这一步操作,提高逼格的同时还能简化流程

正文开始:

先看一下最常见的操作:

853a142c1dcfb83852e9309eb7d7cadb.png
  1. 从数据库中select需要的字段(对数据简单聚合处理)
  2. 将查找的数据导出为本地文件(csv、txt、xlsx等)
  3. 通过pandas的read_excel(csv、txt)将本地文件转化成python中的变量,并对数据进行相应的处理和分析
  4. 将处理好的数据通过pandas的to_excel(csv、txt)导出为本地文件

但是大家不觉得第二步很多余吗?为什么还要先导出再导入,这个中间步骤纯属浪费时间啊,理想中的步骤应该是这样的

49aa4adfdfadaff45856b5b4ae61128a.png
  1. 将mysql中的数据导入到python中
  2. 利用python处理分析数据
  3. 导出成excel报表

这么一看是不是感觉就舒服多了?

那么问题来了,怎么实现直接把mysql中的数据直接导入python中呢?

这就要讲到今天的重点了:

第一种方法:read_sql

第二种方法:pymysql

先看一下我们今天的数据库信息:

8d1cbe8f31a1b17e8a97444d946ea04a.png

host:192.168.0.***

port:3306

user:root

密码:********

fd9cf039f63fc10c8e290b04e31729af.png

数据库:test

表名:weather_test

字段及数据:

3cd8d42db1608561214b7ab605fa66f6.png

0bc27424bcd048b279019021a4fd35db.png

一、read_sql()

read_sql(sql,con,index_col='None',coerce_float='True',params='None',parse_dates='None',columns='None',chunksize:None='None')

read_sql方法是pandas中用来在数据库中执行指定的SQL语句查询或对指定的整张表进行查询,以DataFrame 的类型返回查询结果.

其中各参数意义如下:

  • sql:需要执行的sql语句
  • con:连接数据库所需的engine,用其他数据库连接的包建立,例如SQLalchemy和pymysql
  • index_col: 选择哪列作为index
  • coerce_float:将数字形字符串转为float
  • parse_dates:将某列日期型字符串转换为datetime型数据
  • columns:选择想要保留的列
  • chunksize:每次输出多少行数据

1.首先导入pandas和sqlalchemy

a9e56e3ad5476c2c5ae3c5543e782d48.png

2.创建连接

1ce885c08fc1bbcc1e618e66ee9ce4cd.png

3.编写sql代码,执行sql代码,获取返回的值

b7497889f8620e96c831cf2ac3756bc8.png
import pandas as pd
import sqlalchemyengine = sqlalchemy.create_engine('mysql+pymysql://root:******@192.168.0.***:3306/test')sql='''
select * from weather_test where
create_time between '2020-09-21' and '2020-09-22'
and city in ('杭州','上海')
'''
df = pd.read_sql(sql,engine)
df

利用pymysql建立连接并查询也是可以的

b80efac2162f56600e7e5eb8225adf0f.png

至此一次简单地利用pandas中read_sql方法从数据库获取数据就完成了

二、PyMySQL

PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,可以方便的连接数据库并操作数据库

1.安装

首先打开cmd,输入 pip install pymysql 来安装pymysql这个库

4ad457eabdda895a1fedf994a0728a7f.png

2.利用pymysql操作数据库

接下来打开jupyter notebook,开始尝试操作数据库

2.1 首先导入pandas,pymysql

8ca42d651aee11b391334ef8d0b9ae8d.png
import pandas as pd
import pymysql

2.2 接下来创建于数据库的连接

de5b52b52dc3889f17d07e4ba24792a5.png
import pandas as pd
import pymysql# 打开数据库连接
db = pymysql.connect("192.168.0.***", "root", "******", "test", charset='utf8' )

使用connect()方法可以建立与数据库的连接,其中需要的主要参数已经标注在图片上,charset建议选utf8,防止中文乱码

将建立好的连接对象赋值给db这个变量名

2.3 使用cursor()方法获取操作游标

7dce752798ccdcb8e2ef6539fef1ba39.png
import pandas as pd
import pymysql# 打开数据库连接
db = pymysql.connect("192.168.0.***", "root", "******", "test", charset='utf8' )
# 使用cursor()方法获取操作游标 
cursor = db.cursor()
游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次一行或者多行前进或向后浏览数据的能力。可以把游标当作一个指针,它可以指定结果中的任何位置,然后允许用户对指定位置的数据进行处理
通俗来说就是,操作数据和获取数据库结果都要通过游标来操作。

如果不获取游标,我们就没法获得查询出来的数据

最常用的也是默认的游标就是cursor,返回的数据格式为tuple

其余的游标类型还有DictCursor,SSCursor,SSDictCursor等

SS开头的游标称为流式游标,Cursor和DictCursor游标可以一次性返回所有的数据,流式游标智能一条一条得返回查询数据,所以这类游标适用于内存低、网络带宽小、数据量大的应用场景中。

DictCursor:返回字典(Dict)格式的数据

SSCursor:流式游标返回元组(Tuple)格式数据

SSDictCursor:流式游标返回字典(Dict)格式数据

使用其他游标时,只用在cursor()方法中加入相应的参数即可

cursor = db.cursor(pymysql.cursors.SSDictCursor)

2.4 编写sql代码,执行sql代码

0345d5b08afa917d8a54e3b1e5ddd563.png

写一句简单地sql语句,目的是查上海和杭州在2020-09-21~2020-09-22这两天的天气

将写好的sql语句改为字符串格式并赋值给sql这个变量名

使用excute()这个方法可以通过定义好的游标来执行写好的sql语句

可以看到输出了一个数字4,代表查询出的数据集共包含4条数据

2.5 获取返回的查询结果

d7c0188e0df11cede5a070fd247d7b93.png

使用fetchall()方法可以通过定义好的游标来获取查询出的完整数据集,并赋值给变量名cds

打印一下cds这个变量,可以看到数据已经获取到了,现在要将其变成我们常用的DataFrame格式

除了fetchall()这个方法,还有fetchone()和fetchmany(size)这两种方法可以获取返回的数据

fetchall():返回所有数据

fetchone():返回下一条数据

fetchmany(size):返回下size个数据

2.6 将获取到的数据转换成DataFrame格式

66f0b4ef95aeb06fd7c445f474bea527.png

将tuple格式的cds变量转换为list,再通过pandas中的DataFrame()方法,将cds转化为DataFrame格式,并改好列名,赋值给weather变量名

输出weather看一下数据

9ebdf2048f5c5cd0aafdf981c3e414b6.png

2.7 关闭游标,关闭数据库连接

c940dec855d9e538dd552fcb8f0a5a22.png
import pandas as pd
import pymysql# 打开数据库连接
db = pymysql.connect("192.168.0.***", "root", "******", "test", charset='utf8' )
# 使用cursor()方法获取操作游标 
cursor = db.cursor()sql = """
select * from weather_test
where create_time between '2020-09-21' and '2020-09-22'
and city in ('上海','杭州')
"""cursor.execute(sql)
cds = cursor.fetchall()
weather = pd.DataFrame(list(cds),columns=['ID','时间','省份','城市','最高温度','最低温度','白天天气','夜间天气','风力','风向'])
cursor.close()  # 关闭游标
db.close()  # 关闭数据库连接

使用pymysql创建一个connect对象的时候,就已经和mysql之间创建了一个tcp的长连接,只要不调用这个对象的close方法,这个长连接就不会断开,就会一直占用资源,所以执行完之后别忘了关闭游标和数据库连接

以上只是最简单的使用python查询数据库的办法,其他增删改操作与此类似,大家可以自行发挥

http://www.jmfq.cn/news/5014891.html

相关文章:

  • ui设计网站/网站怎么优化自己免费
  • 如何在凡科上做网站/百度竞价推广方案范文
  • 网站做的一样算不算侵权/网站平台有哪些
  • 对php网站开发技术课程总结/谷歌关键词搜索排名
  • 如何做网站的seo/长沙百度网站推广
  • 浏览器怎么连接网站的/最新seo课程
  • 自己建个网站做优化/哈尔滨seo关键词
  • 网络优化工程师前景如何/seo教程视频
  • 南宁网站开发价格/朋友圈广告推广平台
  • 淘宝店铺装网站导航怎么做/app开发公司推荐
  • 制作一个网站并上传访问/百度小说排行榜2021
  • wordpress增加启动页/沈阳seo搜索引擎
  • 天元建设集团有限公司咋样/福州seo按天付费
  • 沈阳网站制作公司排名/安卓aso
  • 农家院做宣传应该在哪个网站/百度seo优化包含哪几项
  • 网站设计是平面设计吗/快排seo排名软件
  • 网站关键词密这么稀释/如何建网站详细步骤
  • 我想给别人做网站/网络营销的三大核心
  • 用自己电脑做服务器建网站/百度搜索风云榜单
  • 杭州网站建设h5/网站模板源码
  • 做网站靠谱的公司/云南最新消息
  • 乾元坤和B2B网站建设解/seo建站还有市场吗
  • 吉林省住房城乡建设厅网站/新乡seo推广
  • 大兴网站建设制作/千牛怎么做免费推广引流
  • 网站全面详细创建步骤/有哪些搜索引擎网站
  • 怎么做外网网站监控/长沙网络公司排名
  • 北京网站制作基本流程/站外引流推广渠道
  • h5制作价格/安卓内核级优化神器
  • 建设学校网站策划书/免费发布信息网网站
  • 做网站数据库设计/手机优化软件哪个好用