Django 测试开发2

1.get方法和post方法

get方法

 post方法

直接把method修改成post,报错如下,Django针对CSRF的保护措施是在生成的每个表单放置一个自动生成的令牌,通过这个令牌判断POST请求是否来自同一个网站。使用模板标签添加CSRF令牌,在from表单中添加{% csrf_token %}。

2.接收数据并处理

Django怎么接收请求数据并处理的呢,可以通过from表单的action属性来指定提交的路径。接下来需要配置新添加的路由,打开urls.py文件,添加login_action路由。

然后要添加对应路由的视图函数,打开views.py文件,创建login_action视图函数。

def login_action(request):
    if request.method == ‘POST‘:
        username = request.POST.get(‘username‘,‘‘)
        password = request.POST.get(‘password‘,‘‘)
        if username==‘admin‘ and password==‘admin123‘:
            return HttpResponse(‘login success‘)
        else:
            return render(request,‘index.html‘,{‘error‘:‘username or password error‘})

通过login_action函数来处理登录请求。

客户端发送的请求信息都包含在request中,通过request.method获取请求方式,并判断是否是POST方式的请求。通过.get()方法获取‘uesrname’和‘password’的用户名和密码(‘uesrname’和‘password’对应的是<input>标签的name属性),如果参数为空,就返回一个空的字符串。如果if语句不成立,就返回带有错误提示的字典。模板中使用模板语言添加{{error}},它对应的是render返回字典中的key

网页输入错误的用户名密码,错误提示如下:

3、HttpResponse、render、HttpResponseRedirect

httpResponse:内部传入一个字符串参数,然后发送给浏览器。

render:重定向。需要三个参数,request参数,html模板文件,保存具有数据的字典参数。 如:{key:value}形式。

HttpResponseRedirect:当一个逻辑处理完成后,不需要向客户端呈现数据,而是转回到其它页面,如添加成功、修改成功、删除成功后显示数据列表,而数据的列表视图已经开发完成,此时不需要重新编写列表的代码,而是转到这个视图就可以,此时就需要模拟一个用户请求的效果,从一个视图转到另外一个视图,就称为重定向。重定向到某个url,再跳转到相应的视图文件。

原文地址:https://www.cnblogs.com/wzjbg/p/11625336.html

时间: 2024-08-07 05:42:31

Django 测试开发2的相关文章

Django测试开发-34- xadmin模板中添加action插件

一.action插件介绍 1. Action插件在数据列表页面上提供数据选择功能.可以在Action之后专门处理所选数据.批量删除功能作为默认操作提供. 2. 要启用Action,开发人员可以设置Model 中Class的属性“actions”,这是一种列表类型. xadmin官方地址:https://xadmin.readthedocs.io/en/latest/plugins.html 二.具体操作 1. 首先需要一个Action类,继承BaseActionView from xadmin.

Django测试开发-29- xadmin模板中详情页面布局form_layout详解

现状: xadmin的详情页面默认是一行展示一个字段 使用form_layout: 1. 可以设置必填和非必填字段 2. 可以设置显示不显示字段, 3. 可以设置不可以编辑的字段 一.未使用form_layout之前 models.py class ArticleClassify(models.Model): '''文章分类''' article_classify = models.CharField(max_length=30, verbose_name="分类", default=

Django测试平台开发(三)开发博客②

Django 测试平台开发(三)开发博客② 1.上下文管理器 上下文管理器 django提取context中的数据去供模板调用 需求: 所有的页面都需要一个特定的变量 本质: python函数 , 接收一个HttpRequest对象的参数 , 且返回的必须是一个字典 定义上下文管理器文件名命名不受限, 放置的路径也不受拘束, 可以放在django项目下的任意位置 1.在user文件夹下创建文件process_content.py 1 from . import models 2 3 def ca

Django 初探--Django的开发服务器及创建数据库(笔记)

1.Django的开发服务器 Django框架中包含一些轻量级的web应用服务器,开发web项目时不需再对其配置服务器,Django提供的内置服务器可以在代码修改时自动加载,从而实现网站的迅速开发. 在我们创建的Django_Pro项目的目录下,打开Dos命令行,启动内置服务器: manage.py runserver 默认情况下,使用命令manage.py runserver 启动内置服务器,默认使用本机8000端口,若需要使用其他端口(例如8001),则使用命令 manage.py runs

第一个 Django Project开发

本篇文章是 官网https://docs.djangoproject.com/en/1.7/intro/tutorial01/" 的实践版本.由于原文有较多的解释成分以及用英语书写不便于快速进入Django的开发.所以才有本文. Part 1. 环境搭建测试 如需转载请注明出处:*************************** 谢谢. 1. 环境 Ubuntu 13.10    # cat /etc/issue  进行查看 Python 3.3.2+   # python -V      

测试开发成长学习路线-引导篇(转)

我相信,有很多测试人员会不断问自己,自己到底要不要坚持做测试,测试的职业发展到底怎么样?如果你还在迷茫,在到处找各种大牛问类似的问题,我希望这篇文章,你看完能够结束你的这个烦恼,给你更多的指明方向,当然也有更多的压力. 这个问题,就像大学报考专业一样,很多人问选什么专业比较好,将来毕业就业前景好,薪水起点高.我不会争论这种思想如何不好,回到中国的一句谚语:360行,行行出状元.假如你现在是做测试,你身边同事是做开发,你们对比,肯定有伤害,是吧.会不会有一种,选择了做测试,死路一条的感觉,后悔过没

在 Django/Flask 开发服务器上使用 HTTPS

使用 Django 或 Flask 这种框架开发 web app 的时候一般都会用内建服务器开发和调试程序,等程序完成后再移交到生产环境部署.问题是这些内建服务器通常都不支持 HTTPS,我们想在开发的时候就能够使用和测试 HTTPS,不想还没测试就部署到生产环境,所以我们需要内建服务器能支持 HTTPS. 这个问题可以通过一个外部程序 stunnel 来解决,stunnel 的作用是通过 OpenSSL 库对 TCP 会话进行加密,建立起一个安全通道,保护没有加密功能或未加密的程序.其主要功能

基于Django快速开发可定制的办公系统实战(1):Git的使用

基于Django快速开发可定制的办公系统实战(1):Git的使用 ?为什么在项目的开篇要介绍下git的使用呢?俗话说:"工欲善其事,必先利其器",git工具就是项目开发的必备利器,尤其是在多人协作开发环境中.使用git工具可实现分布式的版本控制,可在服务端和本地创建一个版本库. ?脑图是本文的"脊椎",了解个大概后,再通读本文,再加上实际的操作,效果会更好,那我们就开始吧! 1 Git工具安装 Windows版本安装: 安装包下载地址:https://gitforw

python测试开发django-16.JsonResponse返回中文编码问题

前言 django查询到的结果,用JsonResponse返回在页面上显示类似于\u4e2d\u6587 ,注意这个不叫乱码,这个是unicode编码,python3默认返回的编码 遇到问题 接着前面的User表,测试数据如下 user_name psw mail yoyo 123456 [email protected] yoyo2 111111 1 yoyo5 111111 0 接着上一篇[python测试开发django-15.查询结果转json(serializers)],如果数据库里面