• 限制请求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('首页')

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

  • 相关阅读:
    BootStrap行内编辑
    NPOI学习笔记
    仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'Address'中的标识列指
    .Net MVC发布出错 Server Error in '/' Application.
    C# 新特性
    System.Runtime.InteropServices.COMException:“服务器出现意外情况。 (异常来自
    BootStrap的表格加载json数据,并且可以搜索,选择
    NPOI导入导出Excel
    读取Easy UI的DATa grid里面的所有数据
    C# 导出Excel
  • 原文地址:https://www.cnblogs.com/nihao2/p/12256801.html
Copyright © 2020-2023  润新知