最近新需求来了,要给系统增加几个资源权限。尽量减少代码的改动和程序的复杂程度。所以还是使用装饰器比较科学之前用了一些登录验证的现成装饰器模块。然后仿写一些用户管理部分的权限装饰器。比如下面这种defpermission_required(permission):defdecorator(f):@wraps(f)defdecorated_function(*args,**kwargs):ifnotcurrent_user.can(permission):ab
系统 2019-09-27 17:55:30 1999
写在前面最近每日一更,我这菜鸡都有点儿不好意思了简单介绍简单用法是:assertexpression让我们用程序来测试这个expression,如果expression相当于False,那么raise一个AssertionError出来。即逻辑上等同于:ifnotexpression:raiseAssertionError简单看看这些例子:>>>assertTrue>>>assertFalseTraceback(mostrecentcalllast):Fi
系统 2019-09-27 17:55:25 1999
一、什么是多态<1>一种类型具有多种类型的能力<2>允许不同的对象对同一消息做出灵活的反应<3>以一种通用的方式对待个使用的对象<4>非动态语言必须通过继承和接口的方式来实现二、python中的多态<1>通过继承实现多态(子类可以作为父类来使用)<2>子类通过重载父类的方法实现多态classAnimal:defmove(self):print('animalismoving....')classDog(Animal):passdefmove(obj):ob
系统 2019-09-27 17:55:15 1999
正则表达式什么是正则表达式?正则表达式是对字符串(包括普通字符(例如,a到z之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,该模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式可以干什么?快速高效的查找与分析字符串进行有规律查找比对字符串,也叫:模式匹配具有查找、比对、匹配、替换、插入
系统 2019-09-27 17:54:35 1999
配置好virtualenv和virtualenvwrapper后,使用pycharm创建新项目。之后要面临的问题就来了,之前一直使用的是sqlite作为开发数据库进行学习,按照之前看教程的原则,好像就是说开发环境要和生产环境尽量的一致,所以现在想尝试一下使用更有可能在生产环境部署的mysql数据库进行开发。本觉得是一件应该很轻松的事情,没想到遇到了一些麻烦根据一通百度,搜出来的方案大概有:MySQLdbmysql安装时候自带的connectorpymysq
系统 2019-09-27 17:54:28 1999
一些讨论Python中使用配置文件的最佳实践Python中使用配置文件的最好方法Python符号常量多种配置文件方案对比我的建议1.排除yamlyaml不是一个好主意,因为需要给项目引入额外的依赖。首先排除它,除非是你的个人项目,或者你的项目已经引入了这个package。2.使用setting.py如果你只是需要配置一些全局的符号常量(symbolicconstants),参考Django的做法,使用setting.py,参见:https://github
系统 2019-09-27 17:54:23 1999
迭代器迭代式访问元素的一种方式,迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。迭代器有两个基本的方法:iter()和next()。常见的字符串,列表或元组对象都可用于创建迭代器:>>>list=[1,2,3,4,5]>>>it=iter(list)>>>print(next(it))1>>>print(next(it))2迭代器对象可以使用常规for语句进行遍历:list=[
系统 2019-09-27 17:54:17 1999
这是小编推荐的第25篇好文来源:Python与算法之美作者:梁云1991一,分析代码运行时间第1式,测算代码运行时间平凡方法快捷方法(jupyter环境)第2式,测算代码多次运行平均时间平凡方法快捷方法(jupyter环境)第3式,按调用函数分析代码运行时间平凡方法快捷方法(jupyter环境)第4式,按行分析代码运行时间平凡方法快捷方法(jupyter环境)二,加速你的查找第5式,用set而非list进行查找低速方法高速方法第6式,用dict而非两个li
系统 2019-09-27 17:53:41 1999
Scrapy是一个开源的Python数据抓取框架,速度快,强大,而且使用简单。来看一个官网主页上的简单并完整的爬虫:虽然只有10行左右的代码,但是它的确是一个完整的爬虫服务:当执行scrapyrunspiderxxx.py命令的时候,Scrapy在项目里查找Spider(蜘蛛️)并通过爬虫引擎来执行它。首先从定义在start_urls里的URL开始发起请求,然后通过parse()方法处理响应。response参数就是返回的响应对象。在parse()方法中,
系统 2019-09-27 17:53:38 1999
基于TCP协议的套接字编程实现电话沟通为例,这里传递的是字符,可以自己尝试去发送一个文件#服务端importsocket#1.符合TCP协议的手机server=socket.socket(socket.AF_INET,socket.SOCK_STREAM)#TCP#2.绑定手机号一个服务器,我们自己的电脑作为服务器的话,用自己的IP地址server.bind(('127.0.0.1',8000))#127.0.0.1代表本地#server.bind(('1
系统 2019-09-27 17:53:04 1999