方式一:
urls.py
from mytest import views urlpatterns = [ url(r'^index-(\d+)-(\d+).html', views.Index.as_view()), ]
views.py
from django.http import HttpResponse from django.shortcuts import render from django.views import View class Index(View): def get(self, req, param1, param2): print(param1, param2) return HttpResponse(param1+'--'+param2) def post(self, req): pass return render(req, 'index.html')
当访问url : http://127.0.0.1:8000/index-3-4.html
返回
这样我们看到,将url中传递的参数“3”和“4”取到并输出了。
方式二:
urls.py
from mytest import views urlpatterns = [ url(r'^index-(?P<param2>\d+)-(?P<param1>\d+).html', views.Index.as_view()), ]
views.py 不变
返回结果:
这样相当于是固定将第一个数字传给param2,第二个数字传给param1,因此不用管形参的位置在哪里。
另外:
如果参数较多的话可以使用万能参数,例如:
def index(req, *args, **kwargs):
pass
这样不管url传递了几个参数都没有问题了。
*args 将参数封装为元组
**kwargs 将参数封装为字典