Python获取数据库表保存为excel并发送到邮箱

动态 0
网站在线工具,网站抓取工具
cjl 2019-02-01 17:31:32
回复

分析

  • pymysql获取数据库

  • tablib转换为excel

  • smtplib发送到邮箱

代码

import tablibimport pymysqlimport smtplibfrom email.mime.text import MIMETextfrom email.header import Headerfrom email.mime.multipart import MIMEMultipart# 查询数据def query(sql):
    db = pymysql.connect("localhost", "root", "******", "hahaha")
    cursor = db.cursor()
    sql = sql
    try:
        cursor.execute(sql)
        return cursor.fetchall()
    except:
        print("Error: unable to fetch data")

    db.close()# 导出到exceldef Export():
    sql = query('select GROUP_CONCAT(COLUMN_NAME) from information_schema.COLUMNS where table_name = "good" and table_schema ="hahaha";')[0]

    headers = str(sql[0]).split(',')
    data = query('select * from good')

    genexcel = tablib.Dataset(*data, headers=headers)
    with open('excel.xlsx', 'wb') as f:
        f.write(genexcel.xlsx)# 发送邮件def SendMail():

    _user = '602556194@qq.com'
    _pwd = "**************"
    _to = "sdgaozhe@163.com"

    msg = MIMEMultipart()
    body = MIMEText("数据库", 'HTML', 'utf-8')
    msg['Subject'] = Header("数据库", 'utf-8')
    msg['From'] = _user
    msg['To'] = _to

    msg.attach(body)

    # 添加附件
    att = MIMEText(open("F:\\pystudy\\learn-python3\\过程问题\\excel.xlsx", "rb").read(), "base64", "utf-8")  # 打开附件地址
    att["Content-Type"] = "application/octet-stream"
    att["Content-Disposition"] = 'attachment; filename="test.xlsx"'
    msg.attach(att)

    # 发送邮件
    s = smtplib.SMTP_SSL("smtp.qq.com")
    s.login(_user, _pwd)
    s.sendmail(_user, _to, msg.as_string())

    s.quit()
    print("邮件发送成功")if __name__ == '__main__':
    Export()
    SendMail()


回帖
  • 消灭零回复
最新评论 Latest comments
大大们,帮看下,网站想改版,有什么好办法.可报价 2614
请问官方有没有官网群呢?有时候想和大大们聊以下都没办法 5329
申请贵站友链。 1821
建议增加微信支付通道 5826
换友联的直接回复 1640
Django框架是当前python语言比较热门的一个框架 6514
【伪原创】自动采集文章兼发布文章,可否加入PBOOTCMS的采集功能 6857
百度站长在添加站点后,提示error":401,"message":"site sid is empty或者推送链接错误 10334
生成sitemap.xml网站地图工具 7984
近期推出的文字合成语音 - 在线文字合成mp3语音文件-在线工具 6448
为什么关键词排名做不上百度首页 6102
python 环境用哪个好 2690
百度站长后台的主动推送中的更新数据接口没有条数? 7547
lmcjl在线工具一直追求用户体验至上 7876
今天优化了链接抓取功能,增加mip网站链接抓取 7719
相关评论 Related comments
JetBrains IDE 远程代码执行和本地文件泄露 0
新浪微博错误代码详解 0
微信错误代码(全局返回码)的说明 0
editor.md 配置参数和使用方法 0
Python2和Python3的区别 0
Python获取数据库表保存为excel并发送到邮箱 0
新搭建的新网站要怎么样才能快速进入百度首页 0
轻松解除网页防复制 0
JetBrains IDE workspace.xml文件泄露 0
黑客十大常用工具介绍 0
thinkphp5 getshell漏洞修复的艰辛过程 2
WebSocket connection to 'wss://域名:7272/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED 3
python使用list和tuple 0
Python三大Web框架Django、Flask、Tornado的部署 0
说说redis缓存+workerman通讯+vue.js这方面的感悟 0