Django2.x

Django url 传参的几种方式
  • path() 函数传参

    # urls.py 文件, 下面这两种方式都可以传参 
    # <int:year> 这种方式限制了 url 的参数值必须是 int 类型, 这种方式可以限制 url 参数的数据类型
    urlpatterns = [
        path('archive/<year>/<month>/<day>/', views.home),
        path('archive/<int:year>/<int:month>/', views.home),
    ]
    
    # views.py 文件
    def home(request, year='2021', month='07', day='15'):
        return HttpResponse(f'日期为: {year}-{month}-{day}')
    
  • re_path() 函数传参

    # urls.py 文件
    # 该正则表达式限制了 url 年月日三个参数的长度和类型
    urlpatterns = [
        re_path('archive/d{4}/d{1,2}/d{1,2}/', views.home),
    ]
    
    # views.py 文件
    def home(request, year='2021', month='07', day='15'):
        return HttpResponse(f'日期为: {year}-{month}-{day}')
    
  • 关键字传参

    • GET请求

      # urls.py 文件
      urlpatterns = [
          path('archive/<str:date>', views.home),
      ]
      
      # views.py 文件
      def home(request, date):
          # 获取get请求传入的参数
          year = request.GET.get('year')
          month = request.GET.get('month')
          day = request.GET.get('day')
          return HttpResponse(f'日期为: {year}-{month}-{day}')
      
    • POST请求

原文地址:https://www.cnblogs.com/gxfaxe/p/15014707.html