pyhton 自动化pymysql操作mysqldb数据库增删改查封装

# coding=utf-8
import pymysql
import os
import configparser
"""
    /*
     @:param: python version:3.7
     @:param: author Chen
     @:param: Date: 2019.01.19
     @:param:
            @env:
                beta
                alpha
            @db_name: see_db,ec_db
    */
"""
class EnvConfig(object):
    def __init__(self,env,db_name):
        config_dir = os.path.split(os.path.realpath(__file__))[0]
        config_path = os.path.join(config_dir, "config.ini")
        config = configparser.ConfigParser()
        config.read(config_path)
        self.ip = config.get(env,'ip')
        self.user = config.get(env,'user')
        self.pwd =config.get(env,'pwd')
        self.db_name = config.get(env,db_name)
        self.port = int(config.get(env,'port'))

"""
    /*
    cases:
    t_job=GetConnectDb("see_db","beta")

   */
"""

class GetConnectDb(EnvConfig):
    def __init__(self,env,db_name):
          EnvConfig.__init__(self,env,db_name)
          ip=self.ip
          port=self.port
          user=self.user
          pwd=self.pwd
          db=self.db_name
          self.connect=pymysql.connect(ip,port,user,pwd,db,charset='utf8')
          self.cursor=self.connect.cursor()
          try:
                if self.cursor:
                    pass
          except ConnectionError as e:
              print(e)

    """
    /*
      @:param:  sql  Usage:select * xx t_job where pipelineId='6444df4555sa55dgd';
      @:param:  rows type is int ,get  the first  rows of data
    */
    """
    def disconnect_db(self):
        try:
            self.cursor.close()
            self.connect.close()
        except ConnectionAbortedError as e:
            try:
                self.disconnect_db()
            except ConnectionAbortedError as e:
                print(e)
            print(e)

    def exe_select(self,sql,rows=None):
        try:
            if rows == None:
                try:
                    self.cursor.execute(sql)
                    res=self.cursor.fetchall()
                    return res
                except SyntaxError as e:
                    print(e)
                finally:
                    self.disconnect_db()
            else:
                try:
                    self.cursor.execute(sql)
                    res=self.cursor.fetchmany(rows)
                    return res
                except SyntaxError as e:
                    print(e)
                finally:
                    self.disconnect_db()
        except Exception as e:
            print(e)



    # /*
    #   @:param:
    #   Usage:
    #   when is self.execute(sql) Usage:
    #       sql = insert into t_job(column1,column2,column3)values(a,b,c)
    #       array=None
    #   when is self.executemany(sql,array) Usage:
    #         sql = insert into t_job(id,user,date)values(%s,%s,%s)
    #         array = [(1001,"dev",'2018-11-25-11-12-43'),(1002,"test",'2018-11-25-11-12-44')]
    #   @:param:  rows type is int ,get  the first  rows of data
    # */

    def exe_insert(self,sql,array=None):
        try:
            if array is None:
                try:
                    self.cursor.execute(sql)
                    self.connect.commit()
                except SyntaxError as e:
                    self.connect.rollback()
                    print(e)
                finally:
                    self.disconnect_db()
            else:
                try:
                    self.cursor.executemany(sql,array)
                    self.connect.commit()
                except SyntaxError as e:
                    self.connect.rollback()
                    print(e)
                finally:
                    self.disconnect_db()
        except Exception as e:
            print(e)
    """
    /*
    update sql :
    @:param: sql
    */
    """

    def update_opt(self,sql):
        try:
            self.cursor.execute(sql)
            self.connect.commit()
        except Exception as e:
            self.connect.rollback()
            print(e)
        finally:
            self.disconnect_db()
    def delete_opt(self,sql):
        try:
            self.cursor.execute(sql)
            self.connect.commit()
        except SyntaxError as e:
            self.connect.rollback()
            print(e)
        finally:
            self.disconnect_db()

 

转载于:https://www.cnblogs.com/SunshineKimi/p/10540190.html

可以通过使用Python中的smtplib和email模块来自动化发送邮件。下面是一个简单的示例代码片段: ```python import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.base import MIMEBase from email import encoders # 邮箱登录信息 sender_email = "sender@gmail.com" sender_password = "password" # 收件人信息 receiver_email = "receiver@gmail.com" subject = "这是一封测试邮件" body = "你好,这是一封自动化发送的测试邮件!" # 创建邮件体 message = MIMEMultipart() message['From'] = sender_email message['To'] = receiver_email message['Subject'] = subject # 添加邮件正文 message.attach(MIMEText(body, 'plain')) # 添加附件 filename = "example.txt" attachment = open(filename, "rb") part = MIMEBase('application', 'octet-stream') part.set_payload((attachment).read()) encoders.encode_base64(part) part.add_header('Content-Disposition', "attachment; filename= %s" % filename) message.attach(part) # 发送邮件 smtp_server = smtplib.SMTP('smtp.gmail.com', 587) smtp_server.starttls() smtp_server.login(sender_email, sender_password) text = message.as_string() smtp_server.sendmail(sender_email, receiver_email, text) smtp_server.quit() ``` 使用这个脚本可以发送带有正文和附件的邮件,你需要将sender_email和sender_password更改为你自己的邮箱地址和密码,并将receiver_email更改为收件人的邮箱地址。同时,你需要保证你的发件人邮箱开启了SMTP服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值