精华内容
下载资源
问答
  • python DbUtils 封装

    千次阅读 2017-05-02 18:09:09
    python DbUtils 封装1.python dbutils 说明:DBUtils是一套Python数据库连接池包,并允许对非线程安全的数据库接口进行线程安全包装。DBUtils来自Webware for Python。DBUtils提供两种外部接口: * PersistentDB :...

    python DbUtils 封装

    1.python dbutils 说明:

    DBUtils是一套Python数据库连接池包,并允许对非线程安全的数据库接口进行线程安全包装。DBUtils来自Webware for Python。

    DBUtils提供两种外部接口:
    * PersistentDB :提供线程专用的数据库连接,并自动管理连接。
    * PooledDB :提供线程间可共享的数据库连接,并自动管理连接。
    需要库
    1、DBUtils pip install DBUtils
    2、pymysql pip install pymysql/MySQLdb

    MyDbUtils:

    #-*- coding: UTF-8 -*-
    import pymysql
    from DBUtils.PooledDB import PooledDB
    import DB_config as Config
    import MySQLdb
    '''
    @功能:PT数据库连接池
    '''
    class PTConnectionPool(object):
        __pool = None;
        # def __init__(self):
        #     self.conn = self.__getConn();
        #     self.cursor = self.conn.cursor();
        def __enter__(self):
            self.conn = self.__getConn();
            self.cursor = self.conn.cursor();
            print u"PT数据库创建con和cursor";
            return self;
    
        def __getConn(self):
            if self.__pool is None:
                self.__pool = PooledDB(creator=MySQLdb, mincached=Config.DB_MIN_CACHED , maxcached=Config.DB_MAX_CACHED,
                                   maxshared=Config.DB_MAX_SHARED, maxconnections=Config.DB_MAX_CONNECYIONS,
                                   blocking=Config.DB_BLOCKING, maxusage=Config.DB_MAX_USAGE,
                                   setsession=Config.DB_SET_SESSION,
                                   host=Config.DB_TEST_HOST , port=Config.DB_TEST_PORT ,
                                   user=Config.DB_TEST_USER , passwd=Config.DB_TEST_PASSWORD ,
                                   db=Config.DB_TEST_DBNAME , use_unicode=False, charset=Config.DB_CHARSET);
        return self.__pool.connection()
    """
    @summary: 释放连接池资源
    """
    def __exit__(self, type, value, trace):
        self.cursor.close()
        self.conn.close()
        print u"PT连接池释放con和cursor";
    
    #重连接池中取出一个连接
    def getconn(self):
        conn = self.__getConn();
        cursor = conn.cursor();
        return cursor,conn
    
    #关闭连接归还给连接池
    # def close(self):
    #     self.cursor.close()
    #     self.conn.close()
    #     print u"PT连接池释放con和cursor";
    
    
    def getPTConnection():
        return PTConnectionPool()
    

    配置文件:DB_config.py

    #-*- coding: UTF-8 -*-
    
    #TEST数据库信息
    DB_TEST_HOST="192.168.88.6";
    DB_TEST_PORT=3306;
    DB_TEST_DBNAME="asterisk";
    DB_TEST_USER="root";
    DB_TEST_PASSWORD="kalamodo";
    
    
    #数据库连接编码
    DB_CHARSET="utf8";
    
    #mincached : 启动时开启的闲置连接数量(缺省值 0 开始时不创建连接)
    DB_MIN_CACHED=10;
    
    #maxcached : 连接池中允许的闲置的最多连接数量(缺省值 0 代表不闲置连接池大小)
    DB_MAX_CACHED=10;
    
    #maxshared : 共享连接数允许的最大数量(缺省值 0 代表所有连接都是专用的)如果达到了最大数量,被请求为共享的连接将会被共享使用
    DB_MAX_SHARED=20;
    
    #maxconnecyions : 创建连接池的最大数量(缺省值 0 代表不限制)
    DB_MAX_CONNECYIONS=100;
    
    #blocking : 设置在连接池达到最大数量时的行为(缺省值 0 或 False 代表返回一个错误<toMany......>; 其他代表阻塞直到连接数减少,连接被分配)
    DB_BLOCKING=True;
    
    #maxusage : 单个连接的最大允许复用次数(缺省值 0 或 False 代表不限制的复用).当达到最大数时,连接会自动重新连接(关闭和重新打开)
    DB_MAX_USAGE=0;
    
    #setsession : 一个可选的SQL命令列表用于准备每个会话,如["set datestyle to german", ...]
    DB_SET_SESSION=None;
    

    封装的mysqlhelp.py

    coding=utf-8

    import MySQLdb
    from MyDbUtils import getPTConnection
    
    class MysqlHelp(object):
    
    mysql=None
    def __init__(self):
        # self.connect()
        self.db=getPTConnection()
    def __new__(cls, *args, **kwargs):
        if not hasattr(cls, 'inst'):
            cls.inst = super(MysqlHelp, cls).__new__(cls, *args, **kwargs)
        return cls.inst
    #查询所有
    def selectall(self,sql='',param=()):
        #判断是否连接,并设置重连机制
        # self.connected()
        try:
            cursor,conn=self.execute(sql,param)
            res=cursor.fetchall()
            self.close(cursor, conn)
            return res
        except Exception,e:
            print 'selectall except   ', e.args
            self.close(cursor, conn)
            return None
    
    #查询一条
    def selectone(self,sql='',param=()):
        # self.connected()
        try:
            # cur = self.db.cursor()
            cursor, conn=self.execute(sql,param)
            res = cursor.fetchone()
            self.close(cursor, conn)
            return res
        except Exception, e:
            print 'selectone except   ', e.args
            self.close(cursor, conn)
            return None
    
    #增加
    def insert(self,sql='',param=()):
        # self.connected()
        try:
            # self.db.getconn().execute(sql, param)
            cursor, conn=self.execute(sql,param)
            print '============'
            # _id=self.db.conn.insert_id()
            _id=cursor.lastrowid
            print '_id   ',_id
            conn.commit()
            self.close(cursor, conn)
            #防止表中没有id返回0
            if _id==0:
                return True
            return _id
        except Exception, e:
            print 'insert except   ', e.args
            conn.rollback()
            self.close(cursor, conn)
            # self.conn.rollback()
            return 0
    
    #增加多行
    def insertmany(self,sql='',param=()):
        # self.connected()
        cursor,conn=self.db.getconn()
        try:
            cursor.executemany(sql, param)
            # self.execute(sql,param)
            conn.commit()
            self.close(cursor, conn)
            return True
        except Exception, e:
            print 'insert many except   ', e.args
            conn.rollback()
            self.close(cursor, conn)
            # self.conn.rollback()
            return False
    
    #删除
    def delete(self,sql='',param=()):
        # self.connected()
        try:
            # cur = self.conn.cursor()
            # self.db.getconn().execute(sql, param)
            cursor,conn=self.execute(sql,param)
            # self.db.conn.commit()
            self.close(cursor, conn)
            return True
        except Exception, e:
            print 'delete except   ', e.args
            conn.rollback()
            self.close(cursor, conn)
            # self.conn.rollback()
            return False
    
    #更新
    def update(self,sql='',param=()):
        # self.connected()
        try:
            #cur = self.conn.cursor()
            # self.db.getconn().execute(sql, param)
            cursor,conn=self.execute(sql,param)
            # self.db.conn.commit()
            self.close(cursor, conn)
            return True
        except Exception, e:
            print 'update except   ',e.args
            conn.rollback()
            self.close(cursor, conn)
            # self.conn.rollback()
            return False
    
    @classmethod
    def getInstance(self):
        if MysqlHelp.mysql==None:
            MysqlHelp.mysql=MysqlHelp()
        return MysqlHelp.mysql
    
    #执行命令
    def execute(self,sql='',param=(),autoclose=False):
        cursor, conn = self.db.getconn()
        try:
            if param:
                cursor.execute(sql, param)
            else:
                cursor.execute(sql)
            conn.commit()
            if autoclose:
                self.close(cursor, conn)
        except Exception as e:
            pass
        return cursor, conn
    
    #执行多条命令
    '[{"sql":"xxx","param":"xx"}....]'
    def executemany(self,list=[]):
        cursor,conn=self.db.getconn()
        try:
            for order in list:
                sql=order['sql']
                param=order['param']
                if param:
                    cursor.execute(sql,param)
                else:
                    cursor.execute(sql)
            conn.commit()
            self.close(cursor, conn)
            return True
        except Exception as e:
            print 'execute failed========',e.args
            conn.rollback()
            self.close(cursor, conn)
            return False
    def connect(self):
        self.conn = MySQLdb.connect(user='root', db='asterisk', passwd='kalamodo', host='192.168.88.6')
    
    def close(self,cursor,conn):
        cursor.close()
        conn.close()
        print u"PT连接池释放con和cursor";
    

    传送门 http://download.csdn.net/download/u010939285/9831459

    展开全文
  • Python软件封装打包

    千次阅读 2020-01-11 16:02:25
    作者:Naples ...来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业...Python Tkinter打包封装方法有:PyInstaller, py2exe, wxPython等方法。答主只是用了PyInstaller来打包,感觉特别好用,对其...

    作者:Naples
    链接:https://www.zhihu.com/question/32703639/answer/165326590
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
     

    Python Tkinter打包封装的方法有:PyInstaller, py2exe, wxPython等方法。答主只是用了PyInstaller来打包,感觉特别好用,对其它方法不做评论。

    网上有很多打包方法:Python | 用Pyinstaller打包发布exe应用,请自行参考!

    要说的是,打包过程中可以添加如下指令,自行尝试打包后的差异:

    -w指令,在指令内加入-w命令可以屏蔽发布的exe应用带命令行调试窗口;

    -F指令,使用-F指令可以把应用打包成一个独立的exe文件,否则是一个带各种dll和依赖文件的文件夹;

    -i指令,可以自定义图标。

    简单写一下用pyinstaller打包软件的过程:

    ①准备好打包文件:

    aiueo.py为代码,audio文件夹、tango文件夹和file.txt为程序关联调用的文件,a.ico为软件图标。

    ②在安装的Python文件夹下的Scripts目录下(包含pyinstaller.exe),shift+右键>>在此处打开命令窗口:

    ③输入:pyinstaller.exe -i C:\Users\Naples\aiueo\a.ico -w C:\Users\Naples\aiueo\aiueo.py 回车。

    -i C:\Users\Naples\aiueo\a.ico 为图标所在的目录;

    -w C:\Users\Naples\aiueo\aiueo.py 为程序所在目录。

    ④在C:\Python34\Scripts目录下就会出现这三个文件:

    可以将第一、三个文件删除,只留下dist文件夹。将和程序关联的audio文件夹、tango文件夹和file.txt三个文件夹拷贝到dist/aiueo/目录下。双击aiueo.exe,程序就可以使用了。

    可以发送桌面快捷方式,也可以将软件打包拷贝到相同平台下的电脑上使用。

     

    以上。

    展开全文
  • Python:python封装成exe文件方法

    千次阅读 多人点赞 2019-12-28 00:47:51
    本人用的是python3.6版本 假如我们要打包的文件名是xxx.py #一、通过命令行安装 pywin32包 命令如下 pip3 install pywin32 #二、安装pyinstaller包 命令如下 pip3 install pyinstaller #三、将想要打包的“xxx.py...

    本人用的是python3.6版本
    假如我们要打包的文件名是xxx.py

    一、通过命令行安装 pywin32包

    命令如下

    pip3 install pywin32
    

    二、安装pyinstaller包

    命令如下

    pip3 install pyinstaller
    

    三、将想要打包的“xxx.py”文件放到安装pywin32的同一目录下

    (即运行pip3 install pywin32时的目录)

    三、命令行运行如下代码

    pyinstaller -F xxx.py
    

    其中 -F 是将你需要打包的py打成一个exe文件
    而 -D 是将py打成一个文件,

    四 、进入安装pywin32的目录下

    即C:\Users\Chang yubo
    找到dist文件夹,打开会发现一个叫xxx.exe的可执行程序,运行即可

    五、喜欢请点赞哦!

    在这里插入图片描述

    本文参考链接: https://blog.csdn.net/wanghuan0/article/details/100655160.

    展开全文
  • Python-封装对象类

    千次阅读 2018-11-10 19:31:42
    Python虽然是解释型语言,但从设计之初就已经是一门面向对象的语言,对于Python来说一切皆为对象。正因为如此,在Python中...封装一个类,最基本的就是“init”方法,当创建一个对象时,就是调用“init”方法初始化...

    Python虽然是解释型语言,但从设计之初就已经是一门面向对象的语言,对于Python来说一切皆为对象。正因为如此,在Python中创建一个类和对象是很容易的,当然如果习惯面向过程或者函数的写法也是可以的,Python并不做硬性的限制。
    在很多场景,我们都需要封装一个对象类,这样操作起来很方便快捷,接下来一步一步的和大家分享一下Python是怎么样封装类的。
    版本一:
    封装一个类,最基本的就是“init”方法,当创建一个对象时,就是调用“init”方法,根据传递的来初始化对象的值。

    class Person:
        def __init__(self, name, age, gender):
            self.name = name
            self.age = age
            self.gender = gender
    
    
    if __name__ == "__main__":
        person = Person("张三", 12, "男")
        print(person)
    

    运行测试一下:
    在这里插入图片描述
    测试输出新建Person的对象,发现输出的是一串地址,这样不利于我们直接观察。封装成对象还满足不了我们的需求,所以我们需要对版本进行一下升级

    版本二:
    那我们想要查看对象的值要怎么办呢?很简单,重写__str__方法。
    原因:当我们print一个对象时,系统会调用默认的__str__方法,输出的是一串地址,但是不利于我们直接观察,所以我们需要根据我们自己的需求重写__str__方法。

    class Person:
        def __init__(self, name, age, gender):
            self.name = name
            self.age = age
            self.gender = gender
    
        def __str__(self):#该方法可以根据自己的需求重写,没有固定的模式
            return "姓名:{},年龄:{},性别:{}".format(self.age, self.age, self.gender)
    
    if __name__ == "__main__":
        person = Person("张三", 12, "男")
        print(person)
    

    再次运行测试:
    在这里插入图片描述
    这样看起来就直观多了
    版本三:
    模拟这样一个场景:以相同的参数,初始化了两个对象,比较这两个对象是否相等,我们先通过代码实现一下:

    class Person:
        def __init__(self, name, age, gender):
            self.name = name
            self.age = age
            self.gender = gender
    
        def __str__(self):
            return "姓名:{},年龄:{},性别:{}".format(self.age, self.age, self.gender)
    
    if __name__ == "__main__":
        person = Person("张三", 12, "男")
        person1 = Person("张三", 12, "男")
        print(person == person1)
    

    测试结果:
    在这里插入图片描述
    结果显示,两个对象并不相等

    原因:从计算机的角度来讲,这是两个不同的对象,因为他们的地址不同,所以这两个对象不相等

    但是从比较人性化的方面来讲,他们的值是相同,应该是相等的,而这也是我们的需求,需求有了,就可以根据需求来升级版本了。

    我们只需要重写__eq__方法就行了,原因是当比较两个对象是否相等时,系统会调用默认的__eq__方法,而我们只需要根据自己的需求重写__eq__方法。

    class Person:
        def __init__(self, name, age, gender):
            self.name = name
            self.age = age
            self.gender = gender
    
        def __str__(self):
            return "姓名:{},年龄:{},性别:{}".format(self.age, self.age, self.gender)
    
        def __eq__(self, other) -> bool:
            return (self.name == other.name) and (self.age == other.age) and (self.gender == other.gender)
        
    if __name__ == "__main__":
        person = Person("张三", 12, "男")
        person1 = Person("张三", 12, "男")
        print(person == person1)
    

    测试运行结果:
    在这里插入图片描述
    这次是我们想要的结果了。

    以上就是我们平常的需要最多的几个需求。

    展开全文
  • python封装

    千次阅读 2019-06-17 10:43:17
    封装的目的是,保护隐私,把不想让别人知道的东西封装起来。 定义了Student类及实例化,每个实例都拥有各自的name和score。现在若需要打印一个学生的成绩,可定义函数 print_score(),该函数为类外的函数。 class ...
  • python 日志封装

    千次阅读 2017-01-20 19:02:35
    日志功能描述:写python项目时,需要用到日志类,需求为:日志信息可配置,提供几种类型不同的配置,并且日志既可以写到文本也可以写到数据库中。 实现时日志类直接使用python的logging,配置信息写到配置文件...
  • python3封装Api接口

    千次阅读 2018-08-13 16:37:00
    python3封装Api接口 注:本篇的代码和语法基于Python3.5环境,下面将用到Python 的Flask框架 封装接口主要讲静态接口(无参数传入)、动态接口(有参数传入,不同参数返回的信息不同)。针对动态接口...
  • python flask 封装属于自己的api0x01 demo0x02 测试0x03 解决 WARNING: This is a development server. Do not use it in a production deployment. falsk WSGI 0x01 demo from flask import Flask, jsonify, ...
  • Python 函数封装

    千次阅读 2012-03-22 15:39:34
    自己在项目中用到的几个函数封装 1.北京时间转换为世界时 def BTC_to_UTC(btc_time): utc_struct = time.mktime([int(btc_time[0:4]),int(btc_time[4:6]),\ int(btc_time[6:8]),int(btc_time[8:10]),
  • [python笔记] python封装,继承,多态

    千次阅读 多人点赞 2018-04-24 19:24:24
    封装:属性和方法放到类内部,通过对象访问属性或者方法,隐藏功能的实现细节.当然还可以设置访问权限;  2. 继承:子类需要复用父类里面的属性或者方法,当然子类还可以提供自己的属性和方法;  3. 多态:同一个方法...
  • python封装成exe

    万次阅读 多人点赞 2018-10-17 14:45:15
    最近写了一个小小的程序,需要进行封装exe,为了简单,就直接用了pyinstaller这个模块,对于python3.6版本的童鞋来说,简直方便的不要。下面就给大家介绍一下如何用pyinstaller去封装程序为exe程序。 首先,需要安装...
  • Python文件封装exe文件

    千次阅读 2020-05-31 18:28:32
    前言:相信我们学会做一个简单的Python文件后,总会想迫不及待的给自己的小伙伴看看,奈何他们的电脑没有安装Python编译器,这该怎么办呢? 我们比较常用封装的,就是pyinstaller模块,这个需要pip下载 下载公式:...
  • 怎么python程序封装?此文详解

    千次阅读 2020-09-25 09:56:46
    python程序封装1 步骤如下: (1)安装pyinstaller,可以直接在cmd命令行中,输入命令“pip install pyinstaller”,安装pyinstaller (2)进入py代码的保存目录,这里py代码放在“E:\python学习\python_work” (3...
  • Python数据封装和私有属性

    万次阅读 2020-06-19 20:10:54
    一个简单的例子 class User: def __init__(self,birthday): self.birthday = birthday def getAge(self): return 2020-self.birthday ...注意:python封装使用双下划线,self.__birthday = b
  • python 函数封装

    千次阅读 2014-07-16 15:16:59
    回到原题,globals可以将全局空间的所有函数和变量的名字都作为key(字符串),值作为value记录下来,而通过这种方法既可以实现函数封装 不废话,上例子 #添加要执行的动作 def AddAction(name,*params): ...
  • python封装和解构

    千次阅读 2019-04-06 14:29:13
    封装和解构 封装 将多个值使用逗号分割,组合在一起 本质上返回一个元组,只是省略了小括号 交换 上句中,等号右边使用了封装,... python 3 中的解构 使用*变量名接受,但不能但单独使用 被 *变量名,收集...
  • python程序怎么封装为可被网页调用的接口?或者有什么其他方法吗?web是用Java写的。
  • python3 封装接口

    千次阅读 2016-12-03 16:28:00
    封装接口主要讲静态接口(无参数传入)、动态接口(有参数传入,不同参数返回的信息不同)。针对动态接口有三种传参方式:key_value、json串和拼接方式入参 一、封装成无参数传入的接口 from flask import Flask,...
  • Python文件封装成exe文件

    千次阅读 2019-12-25 16:43:41
    封装过程 安装pyinstaller模块 使用Windows+R输入cmd打开cmd命令窗口,pyinstaller模块依赖于pywin32模块,所以先输入pip install pywin32安装... 新建一个文件夹(此例文件夹名为fz),将要封装python文件放进去(...
  • python封装exe+exe封装服务

    千次阅读 2018-08-18 18:46:38
    python封装exe+exe封装服务 python封装exe+exe封装服务 一、python封装exe 安装pyinstaller: 打包 二、exe封装为服务 使用SC指令封装服务 使用nssm封装服务 一、python封装exe 本来使用的python...
  • Paramiko是基于Python(2.7,3.4+)版本实现和封装了SSHv2协议,底层是用cryptography实现,我们如果希望远程登录主机或者远程下载或者上传文件到远程主机都可以使用该库实现。Paramiko属于第三方python库,需要我们...
  • python封装实例

    2020-02-15 10:30:39
    python封装实例 封装是面向对象的三大特性之一 封装指的是隐藏对象中一些不希望被外部所访问到的属性或方法 如何隐藏一个对象中的属性? - 将对象的属性名,修改为一个外部不知道的名字 如何获取(修改)对象中的...
  • 使用python和TensorFlow框架实现了一个神经网络模型,现在想将这段代码封装成可执行文 件(读取的是训练好的模型),该如何封装?与封装普通的python代码一样吗?
  • 1、Python 接口测试之Excel表格数据操作方法封装; 2、Python 接口测试之接口关键字封装; 3、Python 接口测试之获取接口数据封装 ;  既然我们接口测试用例写好了,测试数据也拿到了,那么就是模拟调用接口的方法...
  • 第7.9节 案例详解:Python封装

    千次阅读 多人点赞 2019-06-13 18:40:26
    上节介绍了Python中类的封装机制,本节结合一个具体例子进行详细说明。 我们定义一个Person类,其内部有姓名、年龄和类型三个实例变量,并定义了相关的存取方法: class Person(): def __type(self): if self._...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 236,176
精华内容 94,470
关键字:

python方法封装

python 订阅