django 基于正则表达式的url

方式一:

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 将参数封装为字典

 

转载于:https://www.cnblogs.com/wumingxiaoyao/p/6514710.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值