
Python开发
JaysenLeo
挖粪涂墙,星辰大海
展开
-
如何解决邮件中通过http链接展现在邮件正文的媒体资源访问不到的问题(python)
背景当面临,所处开发、测试和生产环境面临各种墙的情况下,邮件中附带的超文本链接的资源在邮件发送后,邮件接收者因为自身所处的接收端的网络条件限制(例如,外网访问内网资源),而访问不到的情况。如下跨墙解决方式或许能够给您一些参考解决方案如果无法访问资源是图片形式,可将图片转成base64的形式<img src="data:image/png;base64, ****"/>替换邮件正...原创 2020-02-23 02:03:04 · 580 阅读 · 0 评论 -
Python拾遗之特殊函数 __enter__ 和__exit__
上下文管理器 (context manager) 是Python2.5开始支持的一种语法,用于规定某个对象(往往是类实例对象)的使用范围。一旦进入或者离开,这会触发相应的生命钩子(enter 和exit)函数,在钩子函数中可以定义,特殊操作例如,对象分配或者释放内存。调用构建有钩子函数的类实例时,往往依赖形式为with…as…的语法。with open("file.txt", "w")...原创 2018-07-06 00:53:03 · 1692 阅读 · 0 评论 -
Python拾遗之特殊函数 __call__
python 中 一切即对象,不外乎函数>>> func = len>>> func.__name__'len'>>> func('asdf')4 所有函数都是可调用的对象,在类实例也可以变成一个可调用的对象只需实现一个特殊方法 _ call_() class Job(object): de...原创 2018-07-05 20:34:21 · 398 阅读 · 0 评论 -
Python拾遗之特殊函数 __len__
# -*- coding: utf-8 -*-"""如果一个类或者其实例对象有类似list对象一样的通过 len() 函数来 获取对象的统计属性的值即 该对象可统计元素的个数。此时,类必须提供一个特殊方法__len__(),在这个方法下定义返回元素的个数,也就是说,只要正确实现了__len__()方法,就可以用len()返回如下 Family实例“长度”"""class Fam...原创 2018-07-05 19:57:48 · 524 阅读 · 0 评论 -
Python拾遗之特殊函数 __dict__
class 通过内置成员dict 存储成员信息(字典),当类实例成员属性发生变动时,会调用 _ setattr _ ,在这个方法下进行属性的必须进行赋值操作 self._ dict_ [name] = value。若不进行定义 ,如下的self.name = obj[‘name’]语句将无任何意义,若在class中未显式定义 _ setattr __,解释器会默认执行该赋值语句。cl...原创 2018-07-10 20:05:09 · 456 阅读 · 0 评论 -
(六)python 设计模式 --- 迭代器模式
访问一个数据容器的内容而无需暴露它的内部表示,支持对该数据容器的多种遍历# -*- coding: utf-8 -*-def count_to(count): # 1.内部以列表形式存储 该数据 _numbers = ["one", "two", "three", "four", "five"] # 2.内部以 IO形式 及时请求数据 _numbers...原创 2018-07-03 00:35:27 · 606 阅读 · 0 评论 -
(五)python 设计模式 --- 建造者模式
相关模式:思路和模板方法模式很像,模板方法是封装算法流程,对某些细节,提供接口由子类修改,建造者模式更为高层一点,将所有细节都交由子类实现。也就是说,将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示(例如 J20 与 歼 J10机体不一样,引擎不一样)。 基本思路 某类产品的构建由很多复杂组件组成; 这些组件中的某些细节不同,构建出的产品表象会略有不...原创 2018-07-03 00:25:31 · 390 阅读 · 0 评论 -
(四)python 设计模式 --- 模板模式
将调用接口统一化,从而定义一个算法的骨架,即定义元方法集,而将一些步骤延迟到子类中,模板方法使得子类可以不改变算法的结构即可重定义该算法的某些特定步骤,也就是说,在父类中定义一个完成该事情的总方法。每个步骤的具体实现,由子类完成,之后子类再按照完成事件需要去调用其每个步骤的实现方法。# -*- coding: utf-8 -*-class Register(object): ...原创 2018-07-03 00:00:29 · 394 阅读 · 0 评论 -
(三)python 设计模式 --- 策略模式
1. 根据需求,通过实现模板接口对象,将其注入实现策略模式# -*- coding: utf-8 -*-####################### 策略模式 模板接口 #######################class TravelStrategy(object): ''' 出行策略 ''' def travelAlgorithm(...原创 2018-07-02 23:46:38 · 852 阅读 · 0 评论 -
(二)python 设计模式 --- 简单工厂
文件目录 DesignPattern\SimpleFactory.py# -*- coding: utf-8 -*-&quot;&quot;&quot;非简单工厂 要记住住各种调用接口,子类的名字都要记住,直接实例化子类&quot;&quot;&quot;class Shape(object): passclass Triangle(Shape): def dra原创 2018-07-02 23:47:41 · 332 阅读 · 0 评论 -
(四)Django进阶之路 中间件
中间件 是嵌入 django 的 request / response 处理过程的一套钩子框架,即可以对django的输入输出做整体修改,是一个可整体插拔的组件模式,有如下使用场景 1. 修改请求,例如在在request到达views之前做权限处理或者token比对,数据解密 2. 修改响应,判断浏览器来源,添加应用体系的响应状态码,数据加密,数据压缩 中间件作用流...原创 2018-06-02 17:07:33 · 452 阅读 · 0 评论 -
(三)Django进阶之路 日志配置
settingsBASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))# app 下预建logs目录LOG_DIR = os.path.join(BASE_DIR, 'YourAppName', 'logs/')LOGGING = { 'version': 1, 'dis...原创 2018-06-02 13:22:02 · 546 阅读 · 0 评论 -
(二)Django进阶之路 自定义管理器
在 Test 模型中构造管理器子类, 并同步如下数据库from django.db import modelsclass Test(model.Model): test_id = models.AutoField(primary_key=True) test_content = models.CharField(max_length=20) test_sta...原创 2018-06-02 13:07:39 · 1186 阅读 · 0 评论 -
(一)Django进阶之路 model的 objects对象 转 json
objects_to_json: 将 model对象 转化成 json json_to_objects: 将 将反序列化的json 转为 model 对象def json_field(field_data): """ 将字典的键值转化为对象 :param field_data: :return: """ if isinstanc...原创 2018-06-02 11:10:21 · 3851 阅读 · 0 评论 -
Django 在pycharmIDE下的报错 Unresolved attribute reference 'objects' for class 'XXXX'
pycharm调整配置原创 2018-06-05 10:17:48 · 9605 阅读 · 1 评论 -
pycharm启用远程解释器(虚拟机),远程调试
第一步 依次打开Settings -&gt; Project -&gt; Project Interpreter 第二步 第三步 第四步 第五步 第六步 第七步 以上完成之后可能IDE会无法解析本地模块,此时可以重启IDE,或者,等。。。...原创 2018-05-19 19:43:33 · 796 阅读 · 0 评论 -
Python2 与 Python3 并存
1.下载pythonwget "https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz" 2.解压下载好的压缩包tar -zxvf Python-3.6.5.tgz 3.配置编译1. sudo mkdir /usr/local/python32. sudo Python-3.5.0/conf...原创 2018-05-19 19:19:13 · 222 阅读 · 0 评论 -
软件开发的功能性需求和非功能性需求
功能性需求,一般是我们显性易见的,就是一般实现了什么功能,提供了什么服务,大体我认为问题中提到,或者我们日常所说的:“看起来复杂不复杂”,基本上都会是针对功能性需求而言的。如果拿google的搜索服务举例来说,那就是: 提供一个输入框, 提供一个按钮,用户在输入框里输入关键字,按了按钮以后,可以搜索出相应结果。 功能性需求,会因为不同的网站,不同的软件,不同的业务和使用目的,大相径庭,五花八门,转载 2017-10-02 18:48:35 · 29020 阅读 · 1 评论 -
(一)python 设计模式 --- 六大原则
单一职责原则,一个类或者模块应该有且只有一个改变的原因,例如,搓衣板,既可以用来跪,也可以用来洗衣服。而在单一职责原理下,搓衣板的两个功能就是引起这个类变化的两个原因,就应该写成两个类# -*- coding: utf-8 -*-&amp;quot;&amp;quot;&amp;quot;单一职责原则&amp;quot;&amp;quot;&amp;quot;class Person(o原创 2018-07-24 11:34:02 · 1801 阅读 · 0 评论 -
Python雾里看花-list与set十万数据查询性能对比
# -*- coding: utf-8 -*-import randomimport timenum = 100000listA = [random.randint(1, i) for i in range(1, num)]setB = set()while len(setB) &amp;lt; len(listA): setB.add(random.randint(1, num)...原创 2018-07-24 11:25:46 · 898 阅读 · 0 评论 -
Python拾遗之特殊函数 __del__
当删除最后一个对象时,python解释器会默认调用一个方法,这个方法为_ del ()方法。在python中,很少会直接销毁对象,如果需要,一般使用del关键字销毁。Python的内存管理机制能够很好的胜任这份工作。不管是手动调用del还是由python自动回收都会触发 del _方法执行# -*- coding: utf-8 -*-import sysclass Test(...原创 2018-07-12 22:12:10 · 449 阅读 · 0 评论 -
Python雾里看花-链式调用
# -*- coding: utf-8 -*-class SuperTupl(tuple): def to_lis(self): return list(self) def to_dic(self, set_key=0): a = {str(val[set_key]): val for val in self} return...原创 2019-07-27 22:37:32 · 303 阅读 · 0 评论 -
感知器(二) 权重更新算法
神经网络的“ 学习” 是指从训练数据中自动获取最优权重参数的过程。神经网络的特征就是可以 从数据中学习。 所谓“ 从 数据中学习”, 是指可以由数据自动决定权重参数的值。此时如何学习到权重参数,这就涉及到权重更新算法。这里给出一般性权重更新算法最新权重 W(j)′W&#x27; _{(j)}W(j)′ = W(j)W_{(j)}W(j) + ∇W(j)\nabla W_{(j...原创 2019-02-19 16:46:27 · 7918 阅读 · 2 评论 -
【sqlacodegen】 sqlalchemy反向生成模型库
使用手册pip install sqlacodegensqlacodegen mysql://<数据库账号>:<数据库密码>@127.0.0.1:3306/<数据库名称> > models.py即可在当前目录生成models.py文件报错Nomodulenamed’MySQLdb’[root@59718da48394 Model]# /...原创 2019-01-29 09:46:25 · 1781 阅读 · 1 评论 -
(七)python 设计模式 --- 单例模式
# -*- coding: utf-8 -*-class Singleton(object): def __new__(cls, *args, **kwargs): if not hasattr(cls, '_instance'): print('create new') cls._instance = super(Si...原创 2019-01-28 20:24:29 · 242 阅读 · 0 评论 -
(八)python 设计模式 --- 代理模式
定义为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。著名的代理模式例子为引用计数(英语:reference counting)指针对象。当一个复杂对象的多份副本须存在时,代理模式可以结合享元模式以减少存储器用量。典型作法是创建一个复杂对象及多个代理者,每个代理者会引用到原本的复杂对...原创 2019-01-28 20:23:28 · 314 阅读 · 0 评论 -
(六)Django进阶之路 QuerySet 上
from django.db.models import Count, F, Valuefrom django.db.models.functions import Length, UpperF表达式的一般用法# 找到员工比椅子多的公司。Company.objects.filter(num_employees__gt=F('num_chairs'))# 找到雇员至少是原来两倍的公...原创 2019-01-28 20:18:48 · 342 阅读 · 1 评论 -
Angular+Tornado+nginx跨站域Cookie访问设置
Tornadoself.set_header(“Access-Control-Allow-Credentials”, “true”)self.set_header(‘Access-Control-Allow-Methods’, ‘POST, GET, OPTIONS’)self.set_header(“Access-Control-Allow-Origin”, “*”)Angul...原创 2018-11-27 23:31:21 · 609 阅读 · 0 评论 -
GIL全局解释器锁和Python多线程
GIL全局解释器锁Python代码的执行由Python虚拟机(也叫做解释器主循环)来控制。Python在设计之初就考虑到要在主循环中,并且同时只有一个线程来控制,对于python下的多线程也一样,因为对于Python虚拟机的访问由全局解释器锁(Global Interpreter Lock)来控制,正式是这个锁,能保证同一时刻只能有一个线程在运行例如,在Python2.7下的多线程处理...原创 2018-11-01 19:57:47 · 414 阅读 · 0 评论 -
python3 使用http.server秒速搭建web服务器
[root@106dbd1157b5 ~]# ls -a. .. .bash_history .bash_logout .bash_profile .bashrc .cache .cshrc .pycharm_helpers .tcshrc anaconda-ks.cfg将如上目录作为http服务器资源发布目录[root@106dbd1157b5 ~]# pyth...原创 2018-10-27 20:59:29 · 10665 阅读 · 2 评论 -
python3.7或者python3.6安装后 <pip> ssl问题
报错现象pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.Collecting virtualenv Retrying (Retry(total=4, connect=None, read=None, redirect=None...原创 2018-10-17 16:15:09 · 2979 阅读 · 0 评论 -
Python拾遗之特殊函数 __getitem__
# -*- coding:utf-8 -*-""" 若类Address中定义了__getitem__()方法, 那么它的实例对象 addr 就可以这样addr[key]取值。 此时就会调用实例中的 __getitem__() 方法, 利用该方法可以实现定制切片"""class Address: def __init__(self, ip, po..原创 2018-09-03 22:10:23 · 782 阅读 · 0 评论 -
Python雾里看花-抽象类ABC (abstract base class)
首先认识模块 abc,python中没有提供抽象类与抽象方法,然而提供了内置模块abc来模拟实现抽象类,例如提供泛映射类型的抽象类 abc.MutableMapping继承abc.MutableMapping构造一个泛映射类型(类似python中的dict)# -*- coding: utf-8 -*-from collections import abcclass M...原创 2018-09-03 22:09:40 · 2339 阅读 · 0 评论 -
(五)Django进阶之路 优雅的打印model
在model.py里定义数据库模型之前,附如下代码def __str__(self): _res_str = list() for i in self._meta.fields: _res_str.append({str(i.column): str(self.__getattribute__(i.column))}) return json...原创 2018-08-01 21:30:58 · 1704 阅读 · 0 评论 -
Python雾里看花-动态倒入模块之importlib
文件目录 main.pyimport sys# 获取模块或者服务名称service = 'Login'_router = 'Service.' + str(service)if _router in sys.modules: router = importlib.reload(_router)else: router = impo...原创 2018-07-12 23:13:18 · 334 阅读 · 0 评论 -
Python雾里看花-帅气的进度条
# -*- coding: utf-8 -*-import sysimport timeclass StdoutColors(object): """格式:\033[显示方式;前景色;背景色m 说明: 前景色 背景色 颜色 --------------------------------------- 3...原创 2018-07-12 22:45:31 · 524 阅读 · 0 评论 -
(二)Web表单-文件上传机制详解(python-Django)
文件上传 当Django处理上传一个文件的时候,文件数据被放在request.FILES中。这个文档解释文件怎么样被存储在磁盘上或者内存中,怎样定制默认的行为。基本文件上传 考虑一个包含FileField的简单的表单:from django import formsclassUploadFileForm(forms.Form): title=forms.CharField(转载 2017-09-29 16:26:57 · 734 阅读 · 0 评论 -
(三)Web框架-龙卷风Tornado之快速上手
示例 HelloTornado.py# _*_coding:utf-8_*_import tornado.ioloopimport tornado.webclass MainHandler(tornado.web.RequestHandler): def get(self): self.write("Hello, Tornado")class Handler_ind原创 2017-08-20 23:34:24 · 2488 阅读 · 0 评论 -
python函数的lambda函数表达式
python函数的lambda函数表达式Python在写一些执行脚本的时候,使用lambda就可以省下函数定义的过程,总之能够精简代码,此外对于一些抽象并且整个程序执行下来,只需要调用一两次的函数,可以省去函数命名这一步骤,简化代码,提高可读性实例环境:Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:40:30) [MSC v.1500原创 2017-04-18 14:34:24 · 3506 阅读 · 0 评论 -
关于Python的进程线程协程之threading模块(五)Time对象
定时器,指定n秒后执行某操作from threading import Timerdef hello(): print("hello, world")if __name__ == '__main__': t = Timer(1, hello) t.start()原创 2017-04-28 18:15:55 · 600 阅读 · 0 评论