python
Dawn-明
这个作者很懒,什么都没留下…
展开
-
flask 教程20
Web表单web表单是web应用程序的基本功能。它是HTML页面中负责数据采集的部件。表单有三个部分组成:表单标签、表单域、表单按钮。表单允许用户输入数据,负责HTML页面数据采集,通过表单将用户输入的数据提交给服务器。在Flask中,为了处理web表单,我们一般使用Flask-WTF扩展,它封装了WTForms,并且它有验证表单数据的功能。WTForms支持的HTML标准字段...原创 2019-03-03 16:09:07 · 226 阅读 · 0 评论 -
python 数据结构之链表
单向链表也叫单链表,是链表中最简单的一种形式,它的每个节点包含两个域,一个信息域(元素域)和一个链接域。这个链接指向链表中的下一个节点,而最后一个节点的链接域则指向一个空值。class Node(object): """节点类""" def __init__(self, item): # 记录元素内容 self.item = item ...原创 2018-12-25 10:45:26 · 104 阅读 · 0 评论 -
python 数据结构之队列和栈
# 栈是一种特殊的线性表,仅能在线性表的一端操作,栈顶允许操作,栈底不允许操作。# 栈的特性:后进先出class Stack(object): """栈""" def __init__(self): self.items=[] def is_empty(self): """判断是否为空""" return sel原创 2018-12-25 14:38:36 · 120 阅读 · 0 评论 -
python 排序方式之冒泡,选择,插入排序
class SortList(object): '''定义一个类方法,把多种排序方法集成起来''' def __init__(self,items=None): self.items=items def bubble_sort(self,li): """ 冒泡排序 # 稳定性:稳定 # 最...原创 2018-12-25 16:39:56 · 130 阅读 · 0 评论 -
python 递归的思想
目标: * *** ***** ******* ********************思路:1、先观察特点;1,3,5,7,9,11,即初始值n=1,之后n=n+2,直到n=11第一步:def sum(n,m): print(n) if n==m: return 1 return n+sum(n+2...原创 2019-01-10 20:18:36 · 448 阅读 · 0 评论 -
python 对其他文件内容进行修改操作
class ReadWriteFile(object): '''对文件进行内容更改操作 file:文件路径,index要修改内容的行数,new_data要修改后的内容,类型为str ''' def __init__(self,file=None,index=None,new_data=None): self.file=file ...原创 2018-12-26 10:49:57 · 878 阅读 · 0 评论 -
python基础
#1.list列表的坑:def append_list(x,lis=list()): lis.append(x) return lisl1=append_list(1)l2=append_list('a')l3=append_list('23',[])l4=append_list(23)print(l3)print(l4)#输出结果:# [1]# ['a',...原创 2019-01-16 10:58:00 · 130 阅读 · 0 评论 -
图片相似度和是否相同
from PIL import Image,ImageChopsimport cv2import mathfrom functools import reduceimport operatorimport pytesseractdef phash(img): # 这种算法的优点是简单快速,不受图片大小缩放的影响, # 缺点是图片的内容不能变更。如果在图片上加几...原创 2019-03-01 12:39:06 · 220 阅读 · 0 评论 -
appium 脚本测试
from appium import webdriverimport unittestdef script(deviceName,udid,platformVersion,bp,port): import os,time app_path = '/Users/liming06/Desktop/APK/test.apk' desired_caps = {} ...原创 2019-01-03 15:44:06 · 363 阅读 · 0 评论 -
CentOS7.5误删python2.7及yum后解决办法(完全重新安装)
完全重装python2.7及yum1.删除python及yum相关文件2.从http://mirrors.163.com/centos/7.5.1804/os/x86_64/Packages/下载并安装python和yum程序包及其依赖包所有rpm包下载完成wget http://mirrors.163.com/centos/7.5.1804/os/x86_64/Packages/...转载 2018-12-27 19:41:49 · 1022 阅读 · 0 评论 -
Monkeyrunner使用
from com.android.monkeyrunner import MonkeyRunner as mrfrom com.android.monkeyrunner import MonkeyDevice as mdfrom com.android.monkeyrunner import MonkeyImage as midevice=mr.waitForConnection()#连接...原创 2018-11-05 21:40:45 · 513 阅读 · 0 评论 -
numpy 基础01
import numpy as npfrom numpy import newaxis#方法:help(np.info(np.add)) 查看方法# print(help(np.info(np.add)))# reshape() #维度(x,y) x--维度 y--元素个数#arange 相当于range(start,stop,step,dtype)a=np.arange(15)...原创 2018-11-21 17:19:11 · 135 阅读 · 0 评论 -
python cherryPy
先安装cherryPy模块,pip3 install cherryPy -i https://pypi.tuna.tsinghua.edu.cn/simple在pycharm里建个文件import syssys.path.append("./cheery")import cherrypyclass HelloWord(object): @cherrypy.expose ...原创 2018-11-21 17:39:10 · 1258 阅读 · 0 评论 -
ubuntu16.4 appium 环境搭建
说到appium环境搭建,真的很坎坷,首选需要安装的环境:node.js Appium python JDK Android SDK然后在进行环境变量的设置:vim /etc/profile,在profile里需要设定java和Android的环境,设定完成后appium-doctor ,看出现什么错误,缺少什么,就把它cp到对应的目录下 node -vnpm -v...原创 2018-12-04 15:56:07 · 511 阅读 · 0 评论 -
修改其他文件中的变量
#思路:将原文件里的内容读取,然后通过下标修改内容,二次覆盖写入user="lm"def update_other_file_name(file,index,new_name): import time t=[] with open(file, 'r')as f1: text = f1.readlines() text[index]='...原创 2018-12-13 10:05:02 · 660 阅读 · 0 评论 -
腾讯云CentOS 7安装Python3.6
1.创建并切换目录 mkdir /usr/local/python3 cd /usr/local/python32.下载源码压缩文件 wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz3.解压并查看当前目录 tar -xvf Python-3.6.3.tgz4.切换目录 cd Python-3.6.35.创建编...原创 2018-12-27 19:00:24 · 309 阅读 · 0 评论 -
Flask 教程01
Flask简介Web应用程序的本质Web(World Wide Web)诞生最初的目的,是为了利用互联网交流工作文档。为什么要用Web框架?如何生产一辆汽车?web网站发展至今,特别是服务器端,涉及到的知识、内容,非常广泛。这对程序员的要求会越来越高。如果采用成熟,稳健的框架,那么一些基础的工作,比如,安全性,数据流控制等都可以让框架来处理,那么程序开发人员可以把精力放在具体...原创 2019-03-02 20:49:40 · 162 阅读 · 0 评论 -
Flask教程02
入门引导Flask的Hello World应用的代码是最简单的,只用在一个Python文件里码7行代码就够了。from flask import Flaskapp = Flask(__name__)@app.route("/")def hello(): return "Hello World!"if __name__ == "__main__": app.ru...原创 2019-03-02 20:51:32 · 102 阅读 · 0 评论 -
flask 教程11
上下文上下文:相当于一个容器,保存了Flask程序运行过程中的一些信息。Flask中有两种上下文,请求上下文和应用上下文。请求上下文(request context)Flask从客户端收到请求时,要让视图函数能访问一些对象,这样才能处理请求。请求对象是一个很好的例子,它封装了客户端发送的HTTP请求。要想让视图函数能够访问请求对象,一个显而易见的方式是将其作为参数传入视图函数,...原创 2019-03-03 00:22:01 · 167 阅读 · 0 评论 -
flask 教程12
Flask-Script通过使用Flask-Script扩展,我们可以在Flask服务器启动的时候,通过命令行的方式传入参数。而不仅仅通过app.run()方法中传参,比如我们可以通过:python hello.py runserver -h ip地址 -p 端口号以上代码告诉服务器在哪个网络接口监听来自客户端的连接。默认情况下,服务器只监听来自服务器所在的计算机发起的连接,即lo...原创 2019-03-03 00:24:18 · 115 阅读 · 0 评论 -
flask 教程14
过滤器过滤器的本质就是函数。有时候我们不仅仅只是需要输出变量的值,我们还需要修改变量的显示,甚至格式化、运算等等,而在模板中是不能直接调用 Python 中的某些方法,那么这就用到了过滤器。使用方式:过滤器的使用方式为:变量名 | 过滤器。{{variable | filter_name(*args)}}如果没有任何参数传给过滤器,则可以把括号省略掉{{variable ...原创 2019-03-03 16:03:03 · 100 阅读 · 0 评论 -
flask教程15
自定义过滤器过滤器的本质是函数。当模板内置的过滤器不能满足需求,可以自定义过滤器。自定义过滤器有两种实现方式:一种是通过Flask应用对象的 add_template_filter 方法 通过装饰器来实现自定义过滤器重要:自定义的过滤器名称如果和内置的过滤器重名,会覆盖内置的过滤器。方式一通过调用应用程序实例的add_template_filter方法实现自定义过滤器。该方法第...原创 2019-03-03 16:05:25 · 104 阅读 · 0 评论 -
flask 教程16
控制代码块if语句Jinja2 语法中的if语句跟 Python 中的 if 语句相似,后面的布尔值或返回布尔值的表达式将决定代码中的哪个流程会被执行:{%if user.is_logged_in() %} <a href='/logout'>Logout</a>{% else %} <a href='/login'>Login&...原创 2019-03-03 16:06:17 · 105 阅读 · 0 评论 -
flask 教程17
宏对宏(macro)的理解:把它看作 Jinja2 中的一个函数,它会返回一个模板或者HTML字符串 为了避免反复地编写同样的模板代码,出现代码冗余,可以把他们写成函数以进行重用 需要在多处重复使用的模板代码片段可以写入单独的文件,再包含在所有模板中,以避免重复使用定义宏{% macro input(name,value='',type='text') %} <...原创 2019-03-03 16:07:22 · 126 阅读 · 0 评论 -
flask 教程18
模板继承模板继承是为了重用模板中的公共内容。一般Web开发中,继承主要使用在网站的顶部菜单、底部。这些内容可以定义在父模板中,子模板直接继承,而不需要重复书写。标签定义的内容{% block top %} {% endblock %}相当于在父模板中挖个坑,当子模板继承父模板时,可以进行填充。 子模板使用extends指令声明这个模板继承自哪个模板 父模板中定义的块在子模板中...原创 2019-03-03 16:08:00 · 127 阅读 · 0 评论 -
flask 教程19
Flask特有的变量和函数你可以在自己的模板中访问一些Flask默认内置的函数和对象config你可以从模板中直接访问Flask当前的config对象:{{config.SQLALCHEMY_DATABASE_URI}}sqlite:///database.dbrequest就是flask中代表当前请求的request对象:{{request.url}}htt...原创 2019-03-03 16:08:36 · 142 阅读 · 0 评论 -
flask 教程03--环境安装
Flask 安装环境使用虚拟环境安装Flask,可以避免包的混乱和版本的冲突,虚拟环境是Python解释器的副本,在虚拟环境中你可以安装扩展包,为每个程序单独创建的虚拟环境,可以保证程序只能访问虚拟环境中的包。而不会影响系统中安装的全局Python解释器,从而保证全局解释器的整洁。虚拟环境使用virtualenv创建,可以查看系统是否安装了virtualenv:$ virtualen...原创 2019-03-02 20:52:36 · 318 阅读 · 0 评论 -
flask教程04
从 Hello World 开始Flask程序运行过程所有Flask程序必须有一个程序实例。 当客户端想要获取资源时,一般会通过浏览器发起HTTP请求。 此时,Web服务器使用WSGI(Web Server Gateway Interface)协议,把来自客户端的所有请求都交给Flask程序实例,程序实例使用Werkzeug来做路由分发(URL请求和视图函数之间的对应关系)。 根据每...原创 2019-03-02 20:56:18 · 138 阅读 · 0 评论 -
flask教程05
url路由请求方式限定使用 methods 参数指定可接受的请求方式,可以是多种@app.route('/',methods=['GET'])def hello(): return '<h1>hello world</h1>'路由查找方式同一路由指向两个不同的函数,在匹配过程中,至上而下依次匹配@app.route('/')def...原创 2019-03-02 20:57:54 · 129 阅读 · 0 评论 -
flask教程06
异常捕获abort 方法抛出一个给定状态代码的 HTTPException,例如想要用一个页面未找到异常来终止请求,你可以调用 abort(404)。参数: code – HTTP的错误状态码# abort(404)abort(500)只能抛出HTTP协议的状态码errorhandler 装饰器注册一个错误处理程序,当程序抛出指定错误状态码的时候,就会调用该装...原创 2019-03-02 20:58:31 · 130 阅读 · 0 评论 -
flask 教程07
构建视图函数返回值在 Python 中视图函数返回值有两种方式:- 直接return - 返回元组(response【响应内容】, status【状态码】, headers【响应头】)可以省略status和headers, hearders可以是字典。 - 可以自定义返回状态码,可以实现不符合http协议的状态码。- make_response方法 from f...原创 2019-03-02 21:00:20 · 125 阅读 · 0 评论 -
flask教程08
request就是flask中代表当前请求的request对象: from flask import request常用的属性如下:属性 说明 类型 data 记录请求的数据,并转换为字符串 * form 记录请求中的表单数据 MultiDict args 记录请求中的查询参数 MultiDict cookies...原创 2019-03-02 21:01:59 · 108 阅读 · 0 评论 -
flask教程09
请求勾子在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如:在请求开始时,建立数据库连接;在请求结束时,指定数据的交互格式。为了让每个视图函数避免编写重复功能的代码,Flask提供了通用设施的功能,即请求钩子。请求钩子是通过装饰器的形式实现,Flask支持如下四种请求钩子:before_first_request:在处理第一个请求前运行。 before_request...原创 2019-03-02 21:02:55 · 115 阅读 · 0 评论 -
flask教程10
状态保持因为http是一种无状态协议,不会保持某一次请求所产生的信息,如果想实现状态保持,在开发中解决方式有: cookie:数据存储在客户端,节省服务器空间,但是不安全 session:会话,数据存储在服务器端 无状态协议:协议对于事务处理没有记忆能力 对同一个url请求没有上下文关系 每次的请求都是独立的,它的执行情况和结果与前面的请求和之后的请求是无直接关系的,它不会...原创 2019-03-02 21:05:47 · 136 阅读 · 0 评论 -
monkey自动化测试脚本
import subprocess,re,os,random,timedef get_device(): #adb devices 可显示的设备有 import subprocess,os # :return: devices_list 设备列表 device_num 设备数量 devices_result=subprocess.getoutput("...原创 2018-11-01 19:41:22 · 1504 阅读 · 0 评论 -
手机adb devices 设备管理器脚本
import rethinkdb as r# connect_devices_list=[ 'DY8SROFQ496PYLKN', '4998e018', '810BBMH225MC', 'ee1ec7d7d83', '52F6T16604013599', 'DWH9X17619W00040', 'BY3AME1554162198', 'HEQGQGYTAAAQTCRG', '721QACRD...原创 2018-10-29 17:31:58 · 668 阅读 · 0 评论 -
python GIL
首先需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念。就好比C++是一套语言(语法)标准,但是可以用不同的编译器来编译成可执行代码。有名的编译器例如GCC,INTEL C++,Visual C++等。Python也一样,同样一段代码可以通过CPython,PyPy,Psyco等不同的Python执行环境来执行。像其中的JPython就...原创 2018-08-28 10:43:15 · 216 阅读 · 0 评论 -
ubuntu16.04 安装django环境
安装sudo apt-get install python3-pip升级sudo pip3 install --upgrade pip卸载sudo apt-get remove python3-pipsudo apt-get install python-virtualenv #安装本地虚拟环境管理工具mkdir ~/django # 创建目录cd ~/django...原创 2018-08-28 11:30:39 · 252 阅读 · 0 评论 -
python 多线程
import osimport timefrom threading import Thread,Lockimport threadingfrom multiprocessing import Processlock=Lock()def work1(id): print(id) lock.acquire() #进行上锁 time.sleep(6) l...原创 2018-08-28 14:17:48 · 167 阅读 · 0 评论 -
queue 队列
#q.put(i) #放数据# q.get() #去数据# q.join() #等待# q.empty() #if 校验是否为空# q.full() #if 校验是否空 # q.get_nowait()# q.put_nowait()# q.qsize()# q.maxsize import queueq=queue.Queue()for i in ...原创 2018-08-28 14:55:52 · 109 阅读 · 0 评论