Python 开发与接口测试学习笔记

这是我跟着虫师学习中积累下来的学习笔记,写得比较简单,适合想学习Python开发与接口测试的初学者学习。

一、开发投票系统

1、参考官网文档,创建投票系统。

https://docs.djangoproject.com/en/1.11/intro/tutorial01/

在创建投票系统之前,要确认自己安装的Django和官网的文档是一致的。

====================

win 10

Python 3.6.2

Django 1.11.3

Pycharm编译器

====================

2、创建项目PollsWeb并创建Polls应用

打开Polls/setting.py文件添加:

Polls是我们刚刚创建的应用,bootstrap3是我们另外下载的前端框架

最终目录结构:

3、创建模型

一般web开发先设计数据库,数据库设计好了,项目就完成一大半了,可见数据库的重要性。

打开Polls/models.py编写如下:

执行数据库表生成与同步

4、admin管理

Django提供了强大的后台管理,对于web应用来说,后台必不可少,例如当前投票系统,如何添加问题与问题选项?直接操作数据库添加,显然麻烦,不方便,也不安全。所以,管理后台就可以完成这样的工作了。

打开Polls/admin.py文件,编写如下内容:

当前脚本的作用就是将模型(数据库表)交由admin后台管理,运行web容器:

首先我们先去创建一个超级管理员用户,

创建完超级用户,就可以去运行我们的容器了:

登录我们的后台:127.0.0.1:8000/admin

输入我们刚才创建的登录名和密码,

点击增加按钮添加问题:

点击save保存

5、 编写视图

视图起着承前启后的作用,前是指前端页面,后是指后台数据库。将数据库表中的内容查询出来显示到页面上。

编写Polls/views.py文件:

6、配置URL

url是一个请求配置文件,页面中的请求转交给由哪个函数处理,由该文件决定。

首先配置Polls/urls.py,这个文件需要自己创建,在Polls下创建一个urls.py的文件:

编写完,就接着编辑总的urls。打开PollWeb/urls.py文件:

7、创建模板

模板就是前段页面,用来将数据显示到web页面上。

首先创建Polls/templates/polls/目录,分别在该目录下创建index.html、detail.html和result.html文件

index.html

result.html

detail.html

8、系统功能展示

http://127.0.0.1:8000/polls/现在我们可以尝试一下访问我们的页面了:

二、开发投票系统接口

虽然投票系统的功能已经开发完成,但我们并没有开发专门的接口,在当前的投票系统中,在我们调用一个get或post请求时,系统会返回整个页面,并且把测试连同页面一起返回

2.1、改造投票系统接口

例如,当我们要调用所有问题的接口时(test_get.py)

运行程序,得到如下结果:

而特有的接口应该返回的是数据,而不是整个页面;而数据一般格式为数组、字典或者Json格式

所以,需要对视图层(../Polls/views.py)进行改造,使其提供接口,并单纯的返回数据

我们先对前面两个进行接口改造,其实这里改造还有很多不完整的,例如单个问题的所有选项的接口,接受的参数question_id如果为空,应该提示参数错误,如果查询不到相关问题,应该提示查询结果为空,如果传的类型不为数字,应该提示,类型错误。

再次执行test_get.py文件:

这次得到的就是json类型的数据了。不过,返回值对中文进行了Unicode的编码。这里提供个小技巧,将其转换成中文。

http://127.0.0.1:8000/polls/在Google浏览器中打开,,我们会看到上面那些返回值

按一下键盘上的F12,就可以打开控制台,根据上面圈出来的点击,就可以看到中文了

2.2、编写接口文档

编写接口文档也是非常重要的一个环节,因为我们编写的接口时需要给别人调用的,那么别人如何知道我们的接口是用get还是post调用呢?参数都有哪些?这时候就要参考接口文档了

1.获取所有问题


url


http://127.0.0.1:8000/polls/


请求类型


get


需要参数



返回格式


json


返回结果


{1: "国庆干什么", 2: "中秋干什么", 3: "暑假干什么", 4: "开学干什么"}


错误类型


暂无

2.获取单个问题的所有选项


url


http://127.0.0.1:8000/polls/


请求类型


get


需要参数


question_id


返回格式


json


返回结果


{1: "在家", 2: "工作实习", 3: "上网"}


错误类型


暂无

大概接口文档就是这么写的,对于这份文档,就方便了后面我们如何做接口测试了

3、对于编写接口测试来说,我们会涉及到两个技术。一个是unittest单元测试框架和request库

接口的代码就这样完成了,最后我们看一下返回的结果:

到这里,我们的系统开发和接口测试就已基本完成了。这也是我跟虫师教程中得到的笔记。

时间: 2024-10-15 03:51:36

Python 开发与接口测试学习笔记的相关文章

Python装饰器的学习笔记(转载)

Python装饰器的学习笔记 2017-05-18 程序员共读 来自:标点符的<Python装饰器的学习笔记> 链接:http://www.biaodianfu.com/python-decorator.html 原文:http://stackoverflow.com/questions/739654/how-to-make-a-chain-of-function-decorators-in-python#answer-1594484 装饰器(decorator)是一种高级Python语法.可

python之raw_input()(学习笔记六)

python之raw_input()(学习笔记六) 我们经常使用raw_input()读取用户的输入,如下例子所示: >>> name = raw_input('please input your name:'),截图如下: 下面简单说下,raw_input()与if搭配使用,脚本如下: #!/usr/bin/env python # -*- coding:utf-8 -*- birth = raw_input('birth:') if birth < 2000: print '0

python基础教程_学习笔记23:图形用户界面

图形用户界面 丰富的平台 在编写Python GUI程序前,需要决定使用哪个GUI平台. 简单来说,平台是图形组件的一个特定集合,可以通过叫做GUI工具包的给定Python模块进行访问. 工具包 描述 Tkinter 使用Tk平台.很容易得到.半标准. wxpython 基于wxWindows.跨平台越来越流行. PythonWin 只能在Windows上使用.使用了本机的Windows GUI功能. JavaSwing 只能用于Jython.使用本机的Java GUI. PyGTK 使用GTK

python基础教程_学习笔记3:元组

元组 元组不能修改:(可能你已经注意到了:字符串也不能修改.) 创建元组的语法很简单:如果用逗号分隔了一些值,那么你就自动创建了元组. >>> 1,3,'ab' (1, 3, 'ab') 元组也是(大部分时候是)通过圆括号括起来的. >>> (1,3,'13') (1, 3, '13') 空元组可以用没有内容的两个圆括号来表示. 如何实现包括一个值的元组呢? >>> (5) 5 >>> ('ab') 'ab' >>>

ASP.Net开发基础温故知新学习笔记

申明:本文是学习2014版ASP.Net视频教程的学习笔记,仅供本人复习之用,也没有发布到博客园首页. 一.一般处理程序基础 (1)表单提交注意点: ①GET通过URL,POST通过报文体: ②需在HTML中为表单元素设置name: ③元素id是给Dom用的,name才是提交给服务器用的: (2)请求处理响应模型: ①浏览器发出访问请求→②服务器处理访问请求并返回HTML→③浏览器解析HTML并显示页面 (3)GET与POST的区别:(★★★→重点) ①GET通过URL传值,而POST通过HTT

python基础教程_学习笔记9:抽象

抽象 懒惰即美德. 抽象和结构 抽象可以节省大量工作,实际上它的作用还要更大,它是使得计算机程序可以让人读懂的关键. 创建函数 函数可以调用(可能包含参数,也就是放在圆括号中的值),它执行某种行为并且返回一个值.一般来说,内建的callable函数可以用来判断函数是否可调用: >>> import math >>> y=1 >>> x=math.sqrt >>> callable(x) True >>> callab

python基础教程_学习笔记10:异常

异常 什么是异常 Python用异常对象来表示异常情况.遇到错误后,会引发异常.如果异常对象并未被处理或捕捉,程序就会用所谓的回溯(Traceback,一种错误信息)终止执行: >>> 1/0 Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> 1/0 ZeroDivisionError: integer division or modulo by

python基础教程_学习笔记6:字典

字典 映射(mapping),一种可通过名字引用值得数据结构. 字典是python中唯一内建的映射类型. 字典中的值没有特殊的顺序,但都存储在一个特定的键(key)里.键可以是数字.字符串甚至是元组. 字典的使用 某些情况下,字典比列表更加适用,比如: 表征游戏棋盘的状态,每个键都是由坐标值组成的元组: 存储文件修改数,用文件名作为键: 数字电话/地址簿: 假如有一个人名列表如下: >>>names=['Alice','Beth','Cecil','Dee-Dee','Earl'] 如果

python基础教程_学习笔记5:字符串

字符串 基本字符串操作 字符串也是序列,因此序列的基本操作(索引.分片.连接.乘法.长度.求最大值和最小值.成员资格)对字符串同样适用: 索引 >>> 'a_string'[0] 'a' 长度 >>> len('a_string') 8 求最大值 >>> max('a_string') 't' 求最小值 >>> min('a_string') '_' 乘法 >>> 'a_string'*2 'a_stringa_st