Django框架(八:urlname——name参数的作用)

name参数的作用:
主要是通过那么的值,来查找url地址,可以理解为反射的作用。在html模板中使用name来反射url,优势就是后期url规则发生改变之后,只需要调整urls.py即可,所有的模板文件都不需要修改。
在urls.py文件中添加如下两个路由。

urlpatterns = [
    path('admin/', admin.site.urls),
    path('sum/',views.add, name="add"),
    path('index/',views.index)
]

对应的views.py文件中的函数:

def add(request):
    return HttpResponse('你访问了第一个url路由')

def index(request):
    return render(request,'index.html')

index.html文件中渲染。
url是固定写法,表示当前要加载的url地址。'add’表示url路由对应的那么参数值。
含义:要加载name=“add”的这个url地址。




    
    name参数


    访问第一个url路由
    访问第二个url路由
    访问第三个url路由
    访问第四个url路由


运行网页结果为
在这里插入图片描述
源代码中的href属性对应的都是/sum/
在这里插入图片描述
每个都可以访问add这个路由,任意点击其中一个
Django框架(八:urlname——name参数的作用)_第1张图片
所以,当我们有很多地方引用这个路由的时候,当他发生改变时,只要name的值不变,就能继续访问。

另外,就是反向获取参数的url
添加如下两个路由。

urlpatterns = [
    path('admin/', admin.site.urls),
    path('sum/',views.add, name="add"),
    path('index/',views.index),
    
    re_path(r'^sum/(\d+)/(\d+)/$',views.add1, name="add1"),
    path('get_url/',views.get_url,name='test')
]

views.py函数的设置
reserse()这个函数就是根据url路由的那么参数,来反向获取url地址的方法。所以,url路由的那么参数不仅仅可以在模板中使用{% url ‘add’ %},也可以在views.py中使用

def add1(request, a, b):
    return HttpResponse('结果是:{}'.format(a+b))
def get_url(request):
    result = reverse('add1',args=('456','001'))
    return HttpResponse(result)

index.html:

计算
    计算
    计算
    计算

运行结果:
Django框架(八:urlname——name参数的作用)_第2张图片

你可能感兴趣的:(Django)