zoukankan      html  css  js  c++  java
  • django路由url传递参数的几种方式

    1、path位置传递,注意:参数名必须一致,浪费了我太多时间

    url.py中:

    path('info/<p1>/<p2>/', Tinfo.as_view())
    path('info/<str:p1>/<int:p2>/', Tinfo.as_view())   # 这么写也可以

    views.py中:

    class Tinfo(APIView):
    
        def get(self, request, p1, p2):
    
            print('参数是:', p1)
    
            return Response('success:{},{}'.format(p1, p2))

    浏览器中输入:

    127.0.0.1:8000/badmin/info/pkfkfkf/123/

    2、re_path,这个与之前的传递方式已经不同了,这个就没有参数名需要一致的问题了,根据参数位置自动匹配

    url.py中

    from django.urls import re_path
    re_path('info/(w+)/(d+)/', Tinfo.as_view()),

    view.py中

    class Tinfo(APIView):
    
        def get(self, request, p1, p2):
    
            print('参数是:', p1)
    
            return Response('success:{},{}'.format(p1, p2))

    3、关键字传参

    path('info/<str:p1>/<int:p2>/', Tinfo.as_view())   #与上同

    GET:

    class Tinfo(APIView):
    
        def get(self, request):
    
       
            p3 = request.GET.get('p3')
            
    
            return Response('success:{}'.format(p3))

    浏览器中输入:

    127.0.0.1:8000/badmin/info/pkfkfkf/123/?p3=err

    POST取参数:

    url.py:

    path('info/<str:p1>/<int:p2>/', Tinfo.as_view()) # 与上相同

    views.py中:

    class Tinfo(APIView):
    
        def post(self, request, p1, p2):
    
            p4 = request.POST.get('p4')
            print('另一种参数p4:', p4)
    
            return Response('success:{},{}'.format(p1, p2))

    浏览器输入:

    以上几种方法包含了常用的参数传递方式,如果觉得写得好,请支持一下!

  • 相关阅读:
    php 扩展模块安装过程
    nginx 配置若干问题
    df 显示 100%的问题
    pcre 不支持 utf 的问题
    服务器TCP连接中 TIME_WAIT 状态过多
    Linux 运维笔试题(一)答案
    Linux 运维笔试题(一)
    Java 内存监控(一)之 jps命令
    python 入门
    Java 内存监控命令简介(零)
  • 原文地址:https://www.cnblogs.com/wangyuxing/p/12909182.html
Copyright © 2011-2022 走看看