zoukankan      html  css  js  c++  java
  • 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请求')
    
  • 相关阅读:
    sql 批量更新
    利用反射获取静态类的静态属性值(已知属性名称的字符串表示)
    远程桌面无法复制粘贴
    jquery分页滑动插件(鼠标可控制上下滑动)
    linux 基本操作
    dotnet core+nginx+supervisor
    dotnet core 托管
    net core 依赖注入
    绑定资源
    拉条改变字体大小
  • 原文地址:https://www.cnblogs.com/tiaowangdeying/p/10508050.html
Copyright © 2011-2022 走看看