写点简单的装饰器 发表于 2017-12-28 | 分类于 Python 字数统计: 262 字 一个计算函数运行时间的装饰器: 12345678import datetimedef cal_time(func): def cal_func(*args, **kargs): start = datetime.datetime.now() result = fun ... 阅读全文 »
对内置装饰器的理解 发表于 2017-12-21 | 分类于 Python 字数统计: 652 字 装饰器就是用函数来包装函数,对内函数赋予一些我们所需要的功能,Python有三个内置的装饰器:staticmethod,classmethod和property,这三个装饰器都是和类相关的. @staticmethond一般情况,要使用类的方法,需要先实例化一个对象再调用方法,使用staticmet ... 阅读全文 »
亲爱的Python,你为什么这么难看? 发表于 2017-12-20 | 分类于 life 字数统计: 733 字 Dear Python, Why Are You So Ugly?by Jess Johnson in Programming Languages Dear Python, something has been bothering me for a while. Its just that, wel ... 阅读全文 »
事不过三,三则重构 发表于 2017-12-15 | 分类于 Python 字数统计: 62 字 如果一个功能在代码中出现次数超过三次,就需要将该功能封装起来在需要的地方调用,及时闻到代码的坏味道是成为一名优秀程序员的必备技能. 阅读全文 »
Django自带的一整套登陆注册权限角色 发表于 2017-12-10 | 分类于 Python , Django 字数统计: 611 字 在写登陆注册时,一般有两种方法,一种是直接使用Django的auth模块,另外一种就是自己模拟实现session和session id,前者的弊端就是字段固定,需要扩展时需要进行重写,后者就是自己造轮子,费时费力,设计的可能并没有Django那么好,但是可以精确控制字段,扩展度高,就来说说auth模 ... 阅读全文 »
Django反向建模 发表于 2017-12-03 | 分类于 Python , Django 字数统计: 300 字 从model到数据库的正向迁移通过model然后使用makemigrations可以将模型中的类迁移到数据库,一个类就对应一张表,这种方式也是建立数据库最快速的方法,但是有一个弊端就是会添加一些Django自带的表,很多时候并不需要这些自带表 1234# 将数据添加到缓存python manage. ... 阅读全文 »
不仅仅在视图中的反向查询 发表于 2017-11-30 | 分类于 Python , Django 字数统计: 259 字 以往使用Django提供的ORM功能都是通过在视图操作模型来实现数据库的增删改查,在这个过程中,带有外键约束的那一方为正方,正方关联的那一方为反方,通过外键去访问关联对象就是正向查询,而不带外键的那一方去访问关联对象就是反向查询,当然这些都是很基本的开发技能. 123456class List(mo ... 阅读全文 »
替换回调函数 发表于 2017-11-25 | 分类于 Python 字数统计: 293 字 使用re.sub来进行复杂的字符串替换时,只能将某一个或某几个字符替换称一样的字符串例如 1234import retext = 'UPPER PYTHON, lower python, Mixed Python'res = re.sub('python', 'snake', text, flags ... 阅读全文 »
区分通配符与正则表达式 发表于 2017-11-19 | 分类于 Python 字数统计: 561 字 通配符在Linux中遇见的比较多,CSS里面也有,而正则表达式范围就更广了,相比于通配符也更复杂,这两者中使用了一些相同的符号来实现匹配,但是同样的符号意义却不一样,在Python中通配符和正则也处于不同的模块中. 正则表达式正则的概念也不用我多说,基本每个程序员都会使用到,我说说这里面几个和通配符 ... 阅读全文 »
筛选爬取的url的几种方法 发表于 2017-11-11 | 分类于 Python , 爬虫 字数统计: 511 字 最近学习爬虫去获取淘宝页面中每个商品的url时,得到的信息中有很多无用的url,所以就想使用一些方法将这些无用的url筛选掉. 比如我需要获取的url必须是http和https开头的,至少有三种方法可以帮助我去获得所需信息. 首先是str.startswith()和str.endswith()方法, ... 阅读全文 »