• django中三种判断请求类型的方法


    1.面向对象方法

    在views.py中编写

    1. 引入模块
    from django import views
    
    1. 函数编写,创建类文件
    class View(views.View):
        def get(self, request):
            print('GET方法')
            return HttpResponse('GET方法')
            
        def post(self, request):
            print('POST方法')
            return HttpResponse('POST方法')
    
    
    1. 配置路由 urls.py中编写
    • 引入模块
    from django.views.generic import TemplateView
    
    • 配置路由
      yyy方法可以让我们不用在views.py中编写函数,直接就可以通过访问yyy方法访问2.html文件
    urlpatterns = [
        path('xxx', views.View.as_view()),
        path('yyy', TemplateView.as_view(template_name='kanyun/2.html'))
    ]
    

    使用

    前端页面,点击发送,表单提交地址为,路由中的xxx,如果是post请求则返回post函数中的结果,如果是get请求则返回get函数中的结果

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <form action="/kanyun/xxx" method="post">
        {%csrf_token%}
        <button type="submit">发送</button>
    </form>
    </body>
    </html>
    

    2.装饰器修饰法

    • 引入模块
    from django.views.decorators.http import require_GET, require_http_methods, require_POST
    
    • 函数编写
    # 只能接收get的请求,如果是post请求访问则直接报错,无法接收
    @require_GET
    def rgt(request):
        return HttpResponse('GET请求')
    
    # 只能接收post的请求,如果是get请求访问则直接报错,无法接收
    @require_POST
    def rpt(request):
        return HttpResponse('POST请求')
    # 可以接收到列表中的规定的请求,列表中的情爱u方法必须大写 
    @require_http_methods(['GET', 'POST'])
    def gpt(request):
        return HttpResponse('收到')
        
    

    3.通过request.method判断

    def check(request):
        if request.method == 'POST':
            return HttpResponse('我是post请求')
        elif request.method == 'GET':
            return HttpResponse('我是get请求')
    
  • 相关阅读:
    OAuth2、CAS单点登录
    xshell隧道转发的三种类型
    chrome 不再支持iframe 携带cookie 访问第三方站点
    AopContext.currentProxy遇到的坑
    Feign Fallback FallbackFactory 笔记
    前端打包构建工具gulp快速入门
    童思编程前端架构设计
    新派系统Web前端架构
    Scratch3的结构
    Proxy使用详解
  • 原文地址:https://www.cnblogs.com/tiaowangdeying/p/10508050.html
Copyright © 2020-2023  润新知