Django,Bottle,Flask,等所有的pythonweb框架都需要配置一个SECRET_KEY。文档通常推荐我们使用随机的值,但我很难发现他有任何文字说明,因为这样容易被破解(本地攻击或者文本阅读在webapp中更容易受攻击)。攻击者可以使用SECRET_KEY伪造cookies,csrftoken然后使用管理员工具。不过这很难做到,不过他可以搞一些小破坏,比如执行恶意代码。这也是我下面将要介绍的。记得以前使用PHP找到一个可以读服务器上任意文件
系统 2019-09-27 17:38:23 2289
反射描述反射就是指在程序运行时,动态的去确定对象的类型,并且可以通过字符串的的形式去调用对应的属性,方法,导入模块,是一种基于字符串的事件驱动举一个例子:classStudent:def__init__(self):self.name='mhy'self.price='5000'obj1=Student()content=input('>>>:')#这里输入的name是字符串#如果不知道反射,我们平常都是这么根据输入调用的ifcontent=='name'
系统 2019-09-27 17:56:45 2288
关于元组,上一讲中涉及到了这个名词。本讲完整地讲述它。先看一个例子:>>>#变量引用str>>>s="abc">>>s'abc'>>>#如果这样写,就会是...>>>t=123,'abc',["come","here"]>>>t(123,'abc',['come','here'])上面例子中看到的变量t,并没有报错,也没有“最后一个有效”,而是将对象做为一个新的数据类型:tuple(元组),赋值给了变量t。元组是用圆括号括起来的,其中的元素之间用逗号隔开。
系统 2019-09-27 17:56:37 2288
一般来说,当异常发生时,其异常栈应该从主调用者的入口一直到异常发生点,例如Java里经常出现的长达一两页的stacktrace,这其中可能存在中间层代码收到异常时,进行一些动作(关闭数据库连接或者文件等),然后再次抛出异常的情况。Python3中,在except块内进行处理,然后重新抛出异常即可,例如下面的测试代码:#-*-coding:utf-8-*-importsysdefa():b()defb():c()#callthecdefc():raiseEx
系统 2019-09-27 17:55:14 2288
Python函数编程——递归求100不断除以2直到商为0为止,打印每次除的商用循环实现:n=100whilen>0:n=int(n/2)print(n)输出:5025126310如果用函数,如何实现呢?defcalc(n):n=int(n/2)print(n)ifn>0:calc(n)#调用自己calc(100)在函数内部,可以调用其他函数。如果一个函数在内部调用自已本身,这个函数就叫做递归函数。上面我们写的这个代码就是递归。递归的执行过程defcalc(
系统 2019-09-27 17:54:57 2288
这里用到django-rest-framework-jwt这个库https://github.com/GetBlimp/django-rest-framework-jwt按流程图来先通过wx.login()获取code,再通过我们后台配置的接口获取openid和session_key//登录wx.login({success:res=>{console.log(res)//发送res.code到后台换取openId,sessionKey,unionIdwx
系统 2019-09-27 17:54:52 2288
开发环境开发工具Vim/SublimeText2/PyCharm/VSCode用着顺手就好,我是由vim转PyCharm的。集成开发环境自动补全、单步调试等功能好很多,有利于提高工作效率。iTerm:Mac下必备,谁用谁知道Tmux:分屏工具,可以复用session,这点很赞XShell:远程登录Sequel:数据库登录Postman:HTTP接口调试工具开发环境pip/easy_install包管理viertualenv+virtualenvwrappe
系统 2019-09-27 17:54:26 2288
Psyco是严格地在Python运行时进行操作的。也就是说,Python源代码是通过python命令编译成字节码的,所用的方式和以前完全相同(除了为调用Psyco而添加的几个import语句和函数调用)。但是当Python解释器运行应用程序时,Psyco会不时地检查,看是否能用一些专门的机器代码去替换常规的Python字节码操作。这种专门的编译和Java即时编译器所进行的操作非常类似(一般地说,至少是这样),并且是特定于体系结构的。到现在为止,Psyco只
系统 2019-09-27 17:53:26 2288
复制代码代码如下:"""ThismodulecontainscodefromThinkPythonbyAllenB.Downeyhttp://thinkpython.comCopyright2012AllenB.DowneyLicense:GNUGPLv3http://www.gnu.org/licenses/gpl.html"""importosdefwalk(dirname):"""Findsthenamesofallfilesindirnameand
系统 2019-09-27 17:52:36 2288
一、序列类型(字符串,元组(),列表[])序列类型支持in,len(),分片[],迭代,5种内置序列类型:bytearray,bytes,list,str,tuple(元组)。1、元组可以嵌套(如:x=str[2][1][0][1])2、元组的命名(collections.namedtuple(),即自定义)样:sale=collctions.namedtuple("sale","productidcustomeriddateprice")逗号前的为元组类
系统 2019-09-27 17:52:31 2288
本文主讲Python中Numpy数组的类型、全0全1数组的生成、随机数组、数组操作、矩阵的简单运算、矩阵的数学运算。尽管可以用python中list嵌套来模拟矩阵,但使用Numpy库更方便。定义数组>>>importnumpyasnp>>>m=np.array([[1,2,3],[2,3,4]])#定义矩阵,int64>>>marray([[1,2,3],[2,3,4]])>>>m=np.array([[1,2,3],[2,3,4]],dtype=np.f
系统 2019-09-27 17:50:51 2288
经常做图像处理的童鞋可能知道opencv在计算机视觉上的地位,所以很多时候无论是自己做一些小的项目还是做什么,opencv都是一个非常好的选择。注意:本文是为Python配置opencv,如果您是使用C++进行opencv开发,那么需要去opencv官网进行源码下载。1.Windows平台pipinstallopencv-python2.Linux平台我是用的是Ubuntu,其它的应该都可以...(1)为Python2.7配置opencvsudoapt-g
系统 2019-09-27 17:50:29 2288
一、python2.X和3.X的区别https://wenda.so.com/q/1459639143721779?src=140二、Python的下载安装1.Python下载在python的官网下载python版本,需要下载对应版本(在计算机-属性中查看自己是32位操作系统还是64位操作系统),我是64位的,就下载64位对应的安装包了。官网下载地址如下:https://www.python.org/2.安装1)安装下载完成后双击执行下载的exe程序,进入
系统 2019-09-27 17:49:38 2288
基于的phantomjs的自动化,会出现1.flash不支持2.部分基于view的按钮点不到,部分按钮是基于flash的(尤其是在于上传按钮)browser.find_element_by_xpath(".//*[@name='SWFUpload_0']").click()#点击上传按钮sleep(2)autoit.control_set_text("","[CLASS:Edit;INSTANCE:1]",tupian)#上传图片链接sleep(0.5)a
系统 2019-09-27 17:38:45 2288
一.摘要做接口自动化测试时,常常需要使用python发送一些json内容的接口报文,如果使用urlencode对内容进行编码解析并发送请求,会发现服务器返回了200,OK的状态,但响应内容不可读(像是一堆加密报文)。定位问题时发现抓包发现发送报文的内容与我们发送的json内容不符(会去掉”{“与”}“等内容),所以重新采用了json封装后,问题解决。二.解决方法1.先导入json模块,采用json.dumps将json内容进行封装eg:importjson
系统 2019-09-27 17:08:19 2288