- 博客(106)
- 收藏
- 关注
原创 WSGI实现简单的接口请求服务
1>前言 最近工作需要用到http请求,类似实现一些需求如平台组装命令,下发给终端,终端即时处理并返回结果等,起初可能会想起用Django或者Flask框架去做,当然,这是功能及其强大的框架去做肯定是没啥问题了,但是但凡设计到框架,环境搭建可能就会耗费很多时间,并且考虑到这一次请求量较小且时间紧急,直接用python自带的WSGIref模块实现下,顺便温故而知新嘛,其实就是参...
2019-04-30 11:32:06
505
1
原创 appnium+python+夜神模拟器编写第一个自动化脚本
1>前言之前已经搭好了appnium和安卓环境,本章介绍下基于模拟器实现自动化测试,会引入3个知识:1、安卓模拟器的对接这套自动化环境的相关配置;2、利用安卓工具uiautomatorviewer定位元素;3、脚本编写。2>安卓模拟器下载一个夜神模拟器,安装并开启,在cmd命令输入adb devices,如果有检测到设备,如下,那就进入步骤3。如果没有设备,显示如下...
2019-04-29 17:49:14
10649
原创 搭建app自动化测试环境
1>需要的软件-->1.1、jdk-->1.2、python-->1.3、python的appnium库:Appium-Python-Client(pip安装或者pycharm等工具安装)-->1.4、Android-sdk(配置安卓环境需要的软件)-->1.5、Node.js-->1.6、appiumhttps://pan.b...
2019-04-29 16:22:04
603
原创 Django学习之项目记录3
1>注册页面的基本错误信息返回已经实现了,接下来就是优化下校验规则,也就是加钩子,如上,当基本规则校验之后,才会再校验这些“额外”的校验规则,需要注意的,局部钩子返回的错误信息仍然在字段名称对应的值里面,就是那个错误字典:{字段1:[,,,,,,],字段2:[,,,,,,]},而全局钩子返回的错误信息是在字段__all__下面,也就是,{__all__:[全局钩子错误信息],...
2018-08-15 11:58:39
266
1
原创 Django学习之项目记录二
1>图像上传及预览功能思路:利用label的for属性,实际指向file类型的input标签,这样,点击label就跟点击这个input效果一样,如下,label的 for属性,值为avatar,跟下面file类型的input的id属性值一样,再隐藏改input,就实现了点击头像,弹出文件选取弹窗的功能。预览功能思路:其实就是要获取文件弹窗里面,选择的文件对象的URL...
2018-08-14 16:01:37
258
原创 Django学习之项目记录一
1>之前通过bootstrap快速创建了登陆页面,2>通过pillow模块生成了验证码,后粗通过cookie校验验证码,记得要把验证码写入session。3>点击验证码实现更换功能,4>利用用户认证组件 auth模块进行登陆验证,验证失败则返回错误信息5>编写注册页面,用表单组件Form渲染标签实现。注意这里...
2018-08-14 12:02:07
241
原创 python生成图片验证码
1>借助一个pillow库 pip3 install pillow2>解析img = Image.new('RGB', (236, 36), (0, 0, 0)) # 生成图片对象,大小236X36,三原色 000为黑色,每个色取值范围0~255,所以,可以写个随机数值,让它随机生成颜色draw = ImageDraw.Draw(img) ...
2018-08-08 15:53:06
4416
2
原创 Django学习之中间件
1>概念 中间件,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入 与输出。因为改变的是全局,所以需要谨慎实用,用不好会影响到性能。 比如你想修改请求,例如被传送到view中的HttpRequest对象,或者修改view返回的HttpResponse对象,可能 你还想在view执行之前做一...
2018-08-06 10:50:59
197
原创 Django学习之用户认证组件
1>引子 我们之前做用户认证是通过取表单数据跟数据库对应表存储的值做对比,通过就返回一个页面,不通过就重定位 到登陆页面等等,如果每个视图函数都写一下,其实冗余代码还是挺多的,当然,你也可以封装成函数,简化代码。 其实Django提供了一套更专业的用户认证组件,原理类似,并且功能也更强大,我们直接用就好了。 先导入模块,from django.con...
2018-08-03 11:38:09
826
原创 Django学习之Session
1>介绍 cookie看似解决了HTTP(短连接、无状态)的会话保持问题,但把全部用户数据保存在客户端, 存在安全隐患,于是cookie+session出现了!我们可以把关于用户的数据保存在服务端, 在客户端cookie里加一个sessionID(随机字符串),服务端通过校验这个sessionID来处理后续操作, 用户的隐秘信息便不会在请求的时...
2018-08-02 10:44:25
304
1
原创 Django学习之Cookie
1>什么是Cookie 其实Cookie是key-value结构,类似于一个python中的字典。随着服务器端的响应发送给客户端浏览器。 然后客户端浏览器会把Cookie保存起来,并标注Cookie来源,当下一次再访问同一服务器时把Cookie再 发送给服务器,这样服务器就可以识别客户端了。 如下,客户端(浏览器)第一次访问服务端的时候,是不带cook...
2018-08-01 10:32:23
263
原创 Django学习之Forms组件二---钩子
1>校验失败错误信息返回基于之前的规则,增加error_message参数,自定义一些错误信息,如下基于上面一些校验规则可能过于简单,不太能满足实际需求,我们需要再增加一些自定义的校验,包含校验单个字段和多个字段的,这就是局部钩子 和全局钩子,其实也就是在自定义forms类里面再自定义校验函数,函数这个函数名以及返回值什么的都必须按照forms组件基类的规则来...
2018-07-31 11:16:30
875
原创 Django学习之Forms组件一
1>概念django框架提供了一个Form类,来进行web开发中的表单提交数据的处理工作。 form组件的2大功能: 1 对用户提交的内容进行验证(from表单/Ajax,显示错误信息) 2 保留用户上次输入的信息 -- 可以生成html标签先看一下创建一个Form表单实现校验功能的基本语法,如下,自定义的类要继...
2018-07-31 09:49:08
990
原创 Django学习之分页器
1>数据批量插入 网站内容记录很多,必然要分页显示,比如100条数据,每页显示10条,那么总共就有10页,点击对应的页签,则 显示相应的内容,实现这个需求之前,我们先看怎么对mysql批量插入数据, 一个方法,for循环再插入,如下, for i in range(1, 101): Book.objects.create(title=...
2018-07-30 11:18:00
1704
1
原创 Django与Ajax三---实现文件上传
1>先看下基于FORM表单的文件上传为了证明设个request.FILES里面存的确实是一个文件对象,我们把它下载下来,2>再看ajax怎么实现文件上传看下上面的文件取值所以 $('#file')[0].files[0] 取页面文件对象 ...
2018-07-28 13:40:55
1640
2
原创 Django与Ajax二---实现登录验证
1>先看下之前form表单实现这里一下引出了两个新的概念 1> enctype="application/x-www-form-urlencoded" 参数 2> request.body 我们先看下enctype参数吧,它有三个选值,如下(有一个基本不用,就没显示出来) 第一个是默认参数,这样服务器这边就会把需要传...
2018-07-28 12:16:32
2342
原创 Django与Ajax
1>什么是Ajax AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”。即使用Javascript语言与 服务器进行异步交互,传输的数据为XML(现在多用json数据) Ajax有两大特性,也是它的优点 异步交互:客户端发出一个请求后,无需等待服务器响应结束...
2018-07-27 14:04:35
4444
原创 模型层之多表操作的图书管理系统
1>效果如下,3个html文件,两个页面(添加和删除基本一样),各个按钮实现对应的增删改查功能。思路:1>查看书籍页面:从数据库找到所有的书籍对象,html循环对象取值,显示书籍信息, 多对多的作者,html中通过书本对象取对应的作者信息(注意正反向),因为可能有多个值,循环取 一对多的出版社,html中通过书本对象取对应的出...
2018-07-27 10:59:07
435
原创 Django学习之模型层---多表操作之查(三)
1>聚合查询 其实就是查询平均值,最大值,最小值等,对应有这些函数,avg,max,min,count 例如,查询所有书籍的平均值,如下 那这个 aggregate()是啥? aggregate()是QuerySet 的一个终止子句,意思是说,它返回一个包含一些键值对的字典。键的名称是聚合值的标识符, 值是计算出来的聚合值。...
2018-07-26 10:04:25
260
原创 Django学习之模型层---多表操作之查(二)
1>基于双下划线的跨表查询(转成sql语句就是sql的join查询) 前一篇将的基于对象的跨表查询,都是基于相互之间有关联关系的表的查询,本篇主要是讲当多个表之间 没有关联关系,应该怎么链表查询,其实就是用双下划线连接,可链接多个,一直链到你想要的那张表为止 就类似于sql的join,如由四张表 A,B,C,D,我想通过A表的条件查找D表的结果,但是A和D没有直...
2018-07-25 11:37:12
214
原创 Django学习之模型层---多表操作之查(一)
1>基于对象的跨表查询 基于对象的跨表查询,转换成sql语句就相当sql的子查询,以一条sql的输出作为另一条sql的筛选条件 目前的表结构及数据如下(数据随意插入,小说迷请无视): 以几个例子来切入,如下2>一对多 一对多的正向查询:比如,查询【陆小凤传奇-上】这本书的出版社的名字 何为正向查询:当查询是从关联...
2018-07-25 10:41:31
311
原创 Django学习之模型层---多表操作之增
1>介绍 先回顾下之前数据库的多表之间的对应关系 --->一对多,表A的记录可以对应表B的多条记录(如出版社和书本关系,一个出版社可以出版多本书,一本书只能属于 一个出版社),这个时候表A要跟表B建立连接,就必须在表B上面,增加一个关联字段,用外键指向表A的字段。 --->多对多,表A的多条记录可以对应表B的多条记录(如作者和书...
2018-07-24 11:41:27
265
原创 模型层之单表操作的图书管理系统
1>图书管理系统的效果2>整体架构和路由层3>模板层及对应的视图函数--->主页的视图函数和html文件--->新增书籍的视图函数和html文件--->编辑书籍的视图函数和html文件--->删除书籍的视图函数和html文件4>针对上面的效果和代码,再梳理下整个流程 ...
2018-07-19 15:01:55
388
原创 Django学习之模型层---数据查询及删改
1>数据查询 --->先看下各类语法 查询表记录一定要着重注意该语法的调用者和返回值,这样就可以很清楚的知道返回值之后还能 调用什么其他方法(链式操作), 看下实际例子#(1) all方法: 返回值一个queryset对象book_all=Book.objects.all()print(book_all) # [obj1,...
2018-07-18 10:39:13
342
原创 Django学习之模型层---介绍及添加数据
1>ORM简介 ORM是“对象-关系-映射”的简称。它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的 数据库,通过简单的配置就可以轻松更换数据库。 一张图看下他们的对应关系从上图就可以简要的看出来:数据库中的一个表,再Python这边就相当于一个类,表里面的一条条记录就是类实例出来的对象,对象的属性对应的就是记录里面的数据,删除一条...
2018-07-17 19:48:13
1641
原创 Django学习之模板层之自定义标签和过滤器
1>自定义标签和过滤器 当django自带的一些标签不能满足我们项目的开发需求的时候,就需要自定标签或者过滤器了 自定义标签步骤如下, 过滤器和标签的引用 从上可以看出,自定义标签和过滤器整个流程基本一样,除了自定义函数调取的装饰器不一样,其他都一样。 还有一点要注意,filter最多只能传入两个参数,如上...
2018-07-15 17:08:25
625
原创 Django学习之模板层二之标签
4>模板语法之标签 其实之前也接触过标签,反向解析,HTML通过别名获取实际path,就是通过{% url 'tag' %}获取的。 没错,{% %}这些就是标签,标签比变量更加复杂:一些在输出中创建文本,一些通过循环或逻辑来 控制流程,一些加载其后的变量将使用到的额外信息到模版中。一些标签需要开始和结束标签 (例如{% tag %} ...标签 内容 ... {%...
2018-07-15 12:25:15
606
原创 Django学习之模板层
1>模板层说明 模板层并不是单纯的指templates下面的HTML文件。 Django的的模板层包含 HTML代码(或文件) 和 模板语法 是的,HTML代码就不说了,详见前端日志,本章的重点就是这个 模板语法。 模板语法包含了变量传入,过滤器,标签等内容。2>模板语法之变量 其实之前有接触过HTML中python变量的传入,render函数里面加上字典...
2018-07-13 11:30:01
287
原创 Django学习之视图层
1>一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应。 响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. . . 是任何东西都可以。无论视图本身包含什么逻辑,都要返回响应 视图层的两个重点就是HttpRequest对象和HttpResponse对象。2>HttpRequest对象 ...
2018-07-13 10:19:25
289
原创 Django学习之自定义转化器与路由层总结
1>path转化器 之前介绍的str、int、path等若不够用的情况下,我们也可以自己定义一个转化器 可以直接就在first_pro项目文件下面新建一个converter.py文件,专门存放自定义的path转化器 urls.py改写如下,注意,自定义的转换器一定要用django的register_converter进行注册,注册的时候也要指定 别名,就是pa...
2018-07-13 09:55:50
682
原创 Django学习之名称空间和path
1>别名重复时反向解析的问题 如上,两个应用下面的urls配置取了相同的别名,当访问不同路径下的index,看下反向解析的结果 先不究什么访问规则、顺序啥的,别名重名的话,反向解析会找到一个与别名对应的path并返回,也就是说, 这里不管写多少不同的path,只要别名一样,那么,反向解析就只能得到一条相同的记录。 这是取名重复引发的问题...
2018-07-12 16:03:50
1894
原创 Django学习之路由分发和反向解析
1>路由分发 我们之前学习的路由配置都是在项目的全局控制文件(项目名称目录下的urls.py), 这个一个文件当中配置映射关系,当一个项目的url越来越多时,比如项目当中一般都分一级菜单,二级菜单等等 这些主页面url和众多不同分类下的子页面url全都挤在一个文件下,就会造成后期维护的困难, 所以,引入路由分发来解决这个问题, 其思想就是,一些公共的主页面/整个...
2018-07-12 14:04:55
1343
原创 Django学习之路由配置和有名分组
1>引子 URL配置本质也就是告诉Django,URL和调用函数之间的映射关系,对于客户端发来的请求,我应该 用哪一段逻辑代码来进行响应。 先看个例子,比如一个博客系统,我要看不同年份的博客记录,基于我们之前所学习的知识,我们只能这样写: 恩,也不是很多,毕竟你一个网站可能也就是几十年,那要是查月的呢?就要再这些基础上再乘以12,按天呢?再乘以30,,, ...
2018-07-12 10:30:54
789
原创 django学习之静态文件配置
1>之前写前端页面的时候,涉及到页面交互,需要用到jQuery的时候,是直接把jQuery文件放在跟HTML同一目录下然后脚本引用直接写成下面这样<script src="jquery-3.3.1.min.js"></script>但是这只限于本地调试使用,也就是本地打开浏览器,它能找到这个jquery文件,但是若放入web应用,则是不行的因为用户端发请求过来,这边响...
2018-07-12 09:36:24
165
原创 django学习之框架初识
1>django的下载和目录介绍安装成功之后,pycharm再新建项目,就有Django的选项了,选择Django,填写如下, 之后会自动生成一堆的路径和文件,如下项目文件 manage.py ----- Django项目里面的工具,通过它可以调用django shell和数据库等。 settings.py ---- 包含了项目的默认设置,包括数据库信息,调试标志以及其他一些工作...
2018-07-11 15:56:23
185
原创 简单的web框架新增用户登入认证功能
1>数据准备 数据库插入一条账号密码记录 编写登陆成功的展示页面 登陆页面改写如下 2>代码编写 两处编写 2.1>控制层面增加path和处理函数的对应关系 2.2>视图层面增加对应的函数 上半部分是从报文头取出账号密码,下半部分是连接数据库,取出账号密码,若验证通过,返回登陆成功页面,...
2018-07-11 13:41:02
350
原创 django学习之一个简单的web框架
1>server端扩展问题 先看下之前的socket-server端,如下 现在还好,只有两个页面,一个login,一个index,但实际项目中一个网站都是包含成百上千个页面的,若是按照上面的 写法,我们必须要写成百上千个判断语句,后期维护的工作量,不可想象, 要改,绝对要改。2>把上面看起来很乱的代码我们分下层,或者说分下共,明确下每一个代码块负责的事...
2018-07-11 11:14:15
358
原创 Django学习之wsgiref模块
1>先了解下WSGI 再看下web应用的整套流程: >浏览器发送一个HTTP请求; >服务器收到请求,生成一个HTML文档; >服务器把HTML文档作为HTTP响应的Body发送给浏览器; >浏览器收到HTTP响应,从HTTP Body取出HTML文档并显示。 所以,最简单的web应用就是先把HTML用文件保存好,用一个现成的HTT...
2018-07-10 15:03:39
2183
原创 Django学习之web应用
1>web应用之服务器的响应先回顾下之前网络编程 客户端-服务端交互的过程,实质上就是客户端发起建立连接的请求,服务端相应,3次握手之后,链接建好,相互(请求-响应-请求-响应。。。)通信。Web应用程序是一种可以通过Web访问的应用程序,这类应用程序一般通过浏览器来运行(浏览器来发送请求),服务器这边则针对不同的请求返回(响应)不同的内容给客户端,所以,在网络编程来说,浏览器就是socke...
2018-07-10 11:31:43
191
原创 前端开发之抽屉热搜榜
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title>抽屉新热榜</title> <style type="text/css">
2018-06-28 18:10:28
1293
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人