django的传参方式分为两种:
1)参数传参
在urls中写好路径path之后,前端通过api向后端请求数据的时候,可以通过path?参数名=参数值&参数名=参数值的方式来实现前端参数的传递,后端通过request.GET.get('参数名')来获得参数值
2)路径传参
路径传参中,常用的有两种传参方式,views.py的函数必须的参数中必须写入参数名来接收参数,一种是普通的传参方式。
即path(‘hi/<int:id>’) # <类型:参数名> ,这里支持的类型转换器有:str :非空字符串,int:0或一个正整数,slug:任一ASCII的字母、数字、下划线和连字符"-",uuid:UUID格式字符串
第二种是正则的传参方式,所有传入的参数必须满足正则定义的规则。
比如:
from django.urls import path, re_path # 这里需要注意django 2.0的正则re_path或者url均可以
from django.conf.urls import url,re_path
urlpatterns = [ url(r'^hi/(?P<name>\w+)', views.hello), ]
或者
urlpatterns = [
re_path(r'hi/(\w+)/(\d{4})', views.hello),
re_path(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive),
re_path(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$', views.month_archive),
re_path(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<slug>[\w-]+)/$', views.article_detail),
]
综上:两种传参方式的主要区别表现在参数的传输方式,以及视图函数的参数接收方式上。