python读取MySQL数据库 传入格式化变量

2020-12-23 11:55:52 浏览数 (1)

参考链接: 使用Python将变量插入数据库表

python读取MySQL数据库 传入format格式化变量(%s) 

——作为一个CSDN博主,如何更直接的获取成就感?——python2调用远程服务器定时爬取CSDN访问量存入MySQL数据库并可视化系列教程(三、数据读取)  [toc] 

前言 

题外话——  一定不要将自己的数据库信息直接裸放的网上!  一定不要将自己的数据库信息直接裸放的网上!  一定不要将自己的数据库信息直接裸放的网上!  我刚才把GitHub上的仓库删了,也不知道有多少人clone过。  目前好在我这个云数据库是自己的,也没有什么重要的信息。 

这个也是爬虫可视化系列教程的一个部分,因为我觉得标题起的不好,可能访问量就很难上去,所以我得想办法起个大家都可能用的上的标题。  这部分其实是数据可视化模块,也就是项目的后半部分——读取数据库。  详细的代码,可以直接从我的GitHub上clone,然后觉得有价值的话,记得点star哦~  https://github.com/kaixindelele/CSDN_pageviews_spider_tomysql_and_visualize  其中visualizer文件夹里是读取数据库和可视化的部分。 

读取数据库: 

配置环境: 

python2.7安装pymysql、matplotlib等包建立了自己的数据库信息,且数据库名称和我的一样,或者修改一下 

表格形式: 

  column有num、blog_id等  上面的table_102是表格名字 

代码分析 

# -*- coding: utf-8 -*-

"""

Created on Tue Sep 04 20:36:33 2018

@author: lenovo

"""

import pymysql

#定义获取表信息的函数

def get_table_info(table_name,column,local):

    # 连接本地已有的数据库

    if(local == True):

        db = pymysql.connect("localhost", "root", "你的密码!", 'csdn' ,charset="utf8")

    # 或者是远程服务器

    elif(local == False):

        db = pymysql.connect("你的远程服务器IP地址!", "root", "你的密码!", 'csdn' ,charset="utf8")

    # 获取cursor光标

    cursor = db.cursor()

    # 构建读取表格的sql语句

    # select是选择指令,column是你需要拿的栏目,或者是表头,table_name是你选的表格名字

    sql_info = 'select %s from %s order by blog_id'%(column,table_name)

    # 执行sql语句

    try:

        cursor.execute(sql_info)

        # 提交到数据库执行

        db.commit()

        #data拿到数据库的信息,但是格式好像是字符串的列表,字符串编码是unicode

        data = cursor.fetchall()

        print 'this request is sucessful!'

    except Exception, e:

        # 如果发生错误则回滚

        db.rollback()

        print e

        print 'failed!'

    # 关闭数据库连接

    db.close()

    #下面是将这些字符串信息整合起来?具体是啥我忘了,反正是对data数据变成utf8格式的字符串列表

    #好像还要处理掉一个首尾的字符串多余的问题,这个到时候print 调试一下就好了

    tem = []

    try:

        for d in data:

            tem.append("".join(d).encode("utf-8"))

    except Exception , e:

        for d in data:

            tem.append(str(list(d))[1:-1])   

    return tem

#调试这个代码的时候,直接执行,会执行下面的语句

#读取table_1表格,中的创建时间(create_time),然后data获取信息,打印出来,非常适合调试

if __name__ == '__main__':

    table_name = 'table_1'

    column = 'create_time'

    data = get_table_info(table_name,column,local = False)

    for d in data:

        print d    

        print type(d)

    #列表和元祖转成字符串,必须要用join函数~

#    print ''.join(d)

0 人点赞