• 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请求')
    
  • 相关阅读:
    ITSM运维管理整理总结
    牙轮的三相电压
    Surpac 安装
    Ubuntu安装PostgreSql
    内网网速测试
    Linux下使用speedtest测速
    Ubuntu安装elasticsearch 8.x和Kibana
    防抖和节流
    VUE配置proxy代理、开发环境、测试环境、生产环境
    Windows Terminal ssh 远程 Linux 和使用 Git
  • 原文地址:https://www.cnblogs.com/tiaowangdeying/p/10508050.html
Copyright © 2020-2023  润新知