限制请求method及页面重定向

限制请求method

GET请求:向服务器索取数据,不会向服务器提交数据,对服务器状态不会造成更改。

POST请求:向服务器提交数据,会对服务器的状态造成更改,比如向服务器提交一篇文章。(如method=‘submit’)

django内置请求装饰器:

1.django.http.decorators.http.require_http_methods:这个装饰器需要传递一个允许访问的方法列表(GET或者POST请求都可以,在@require_http_methods([])的中括号里写指定请求方法)

 from django.views.decorators.http import require_http_methods

 @require_http_methods(["POST"])#在下个函数中使用post请求
def index(request):
    pass

2.django.views.decorators.http.require_GET:只能使用GET请求

 from django.views.decorators.http import require_GET

 @require_GET  #在下个视图函数中使用GET请求
 def my_view(request):
     pass

3.django.views.decotators.http.require_POST:只能使用POST请求

 from django.views.decorators.http import require_POST

 @require_POST
 def index(request):
     pass

4.django.views.decorators.http.require_safe:只能使用相对安全的方式来访问[GET和HEAD请求]因为只有这两种请求不会对服务起产生增删改的行为。

from django.views.decorators.http import require_safe

 @require_safe
 def index(request):
     pass

页面重定向

重定向分为永久重定向和暂时性重定向

  • 永久性重定向:http状态码为301  即网址的转换,如京东网站:输入www.jingdong.com你会发现上面的网址会自动转换为www.JD.com当访问的还是同一个网站。
  • 暂时性重定向:http状态码为302 即页面的暂时跳转,如知乎网  进入后会先跳转到登录页面,登录后才能继续访问首页。(跳转的过程就是暂时重定向)

from django.shortcuts import render,redirect,reverse
from django.http import HttpResponse
def index(request):
    #如果没有登陆,就重定向到注册页面
    #如果再url中,传递了username这个参数,那么就认为是登陆了,否则就没有登陆
    #传参的方式:  /?username=xxx
    username = request.GET.get(‘username‘)
    if username:
        return HttpResponse(‘首页‘)
    else:
        return redirect(reverse(‘signup‘))
def signup(request):
    return HttpResponse(‘首页‘)

注:在重定向的时候直接给出另一个页面的模板,不是直接跳转。

原文地址:https://www.cnblogs.com/DRY-9916/p/12258927.html

时间: 2024-11-05 15:49:43

限制请求method及页面重定向的相关文章

JSP简单练习-页面重定向

在JSP程序设计中,经常要进行页面的重定向,如在页面程序中加入判断语句即满足条件就转向某页面,不满足条件则转向另一个页面. 下面是一个简单的例子: <%@ page contentType="text/html; charset=gb2312" %> <html> <body> <% // 页面重定向程序片 String url; url=request.getParameter("goaddress"); if(url!=

jsp之 ---- 页面重定向和请求转发(笔记之深度说明)

1.  HttpServletResponse对象的sendRedirect(String location)方法称作重定向. 如果location地址前面加上“/”,则表示  相对于Servlet容器的根来请求. 即 http://localhost:8080,如果location 地址前米有加上'/',则表示相对于当前请求的URL来寻找地址.                              response.sendRedirect("my.jsp");   (无法获取前

【filter 页面重定向循环】写一个过滤器造成的页面重定向循环的问题

今天做一个过滤器,碰上页面重定向循环的情况: 浏览器的访问路径是:http://192.168.16.104:8080/biologyInfo/login/login/login/login/login/login/login/login/login/login/login/login/login/login/login/login/login/login/login/login/login/login/login1.htmls 过滤器的类如下: 1 package com.agen.util;

Spring MVC页面重定向

以下示例显示如何编写一个简单的基于Web的重定向应用程序,这个应用程序使用重定向将http请求传输到另一个页面. 基于Spring MVC - Hello World实例章节中代码,创建创建一个名称为 PageRedirection 项目. 在 com.ktao.controller 包下创建一个Java类WebController. 在jsp子文件夹下创建一个视图文件index.jsp,final.jsp. 最后一步是创建所有源和配置文件的内容并导出应用程序,如下所述. 完整的项目代码,如下所

JSP页面重定向

以下内容引用自http://wiki.jikexueyuan.com/project/jsp/page-redirect.html: 页面重定向通常用于当一个文件移动到一个新的位置,需要向客户端发送到这个新的位置,或可能是因为负载平衡,或简单随机化. 请求重定向到另一个页面的最简单的方法是使用Response对象的sendRedirect()方法.以下是该方法的符号描述: public void response.sendRedirect(String location) throws IOEx

(转)页面重定向和传值 - WebForm

——原文地址:https://msdn.microsoft.com/zh-cn/library/6c3yckfw(v=vs.100).aspx      在开发 ASP.NET 网站时,您经常需要从一个网页重定向(导航)到另一个网页,同时希望能够将信息从源页传递到目标页.例如,如果您正在开发一个保险网站,用一个页面来收集基本信息(用户信息.保险产品信息等),用另一个页面用来完成支付过程,而支付页面又需要前一页面的部分信息,这时就需要进行页面重定向和传值. 实现网页之间信息传递的方式有很多种,例如

Nginx学习笔记05错误页面重定向

Nginx至少存在两种不同的配置来指定错误页面: 使用try_files配置项. 使用error_page配置项. 先介绍使用try_files配置项的情况. Nginx提供的try_files配置允许在一个location中指定多个潜在的可能的响应页面,Nginx将按照定义的次序依次尝试访问这些响应页面,直到成功访问该页面.根据这个机制,可以在try_files配置的页面列表的最后面加上一个页面作为默认的错误页面. 配置内容: location /abc { root  html; try_f

详细介绍ASP.NET页面重定向方法

ASP.NET中页面重定向的使用的很频繁,实现方法也有不同,自己也试过几种,现在总结一下. 一.Transfer Execute Redirect重定向方法介绍 1.Server.Transfer方法:  Server.Transfer("m2.aspx"); //页面转向(服务器上执行).服务器停止解析本页,保存此页转向前的数据后,再使页面转向到m2.aspx, 并将转向前数据加上m2.aspx页结果返回给浏览器. 2.Server.Execute方法:  Server.Execut

ASP.NET MVC 页面重定向

在asp.net中页面重定向:Server.Execute("m2.aspx"); 服务器保存此页转向前的数据后,使页面转向到m2.aspx执行, 再返回本页继续执行.再将三者结果合并后返回给浏览器. 以上都是服务器端页面转向所以浏览器不出现页更改记录(显示的地址不会改变).因此,如果用户刷新此页,也许会出现一些其它意外情况. 此类页转向,可完成一些其它功能,比如访问到前一页面中的服务端控件. 3.Response.Redirect: 当浏览器请求aspx页面时,碰到Redirect(