url命名与反转,应用命名空间与实例命名空间

url命名:

为什么需要url命名?

因为url是经常变化的。如果在代码中写死可能会经常改代码。给url取个名字,以后使用url的时候就使用他的名字进行反转就可以了,就不需要写死url了。

导入相关的库

from django.shortcuts import redirect,reverse
redirect 跳转函数
reverse 反转函数

如何给一个url指定名称?

path函数中,传递一个name参数就可以指定。示例代码如下:
在urls.py文件中

urlpatterns = [
    path('',views.index,name='index'),
    path('signin/',views.login,name='login')
]

在views.py中

def index(request):
    # ?username=xxx
    username = request.GET.get('username')
    if username:
        return HttpResponse('前台首页')
    else:
        return redirect(reverse('login'))

应用命名空间

在多个app之间,有可能产生同名的url。这时候为了避免反转url的时候产生混淆,可以使用应用命名空间,来做区分。定义应用命名空间非常简单,只要在appurls.py中定义一个叫做app_name的变量,来指定这个应用的命名空间即可。示例代码如下:

# 应用命名空间
app_name = 'front'

urlpatterns = [
    path('',views.index,name='index'),
    path('login/',views.login,name='login')
]

以后在做反转的时候就可以使用应用命名空间:url名称的方式进行反转。示例代码如下:

return redirect(reverse(''front:login'))

你可能感兴趣的:(Django)