Django框架之路由模块化
为什么要使用路由模块化
1.大家应该都知道Django可以做什么大型的企业级网站,大家也可以百度看下,国内的知乎就是使用python做的,像这样庞大的一个项目,url的路由管理起来会相当的麻烦,还好django有一个模块化路由的功能帮助我们解决了这个复杂的难题。
通过代码查看如何urls模块化
Django想必大家都知道每隔功能都是以个app,所以我这里创建了两个app来演示url模块化强大的功能。
首先在命令行执行python manage.py stratapp book
python manage.py stratapp city
创建了两个app,这里创建了app后需要自己在项目中自己创建urls.py,
项目的urls.py文件
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('book/',include('book.urls')),
path('city/',include('city.urls')),
]
>这个是在项目的urls.py文件的
大家可以看到,当我执行的url路径包含book的时候,就会进入到book.urls这个文件李查找想应的方法执行,下面的city也是一样的,等下呢在下面我通过实际的例子来讲解
from django.urls import path
from book.views import *
urlpatterns = [
path('details/<int:id>',book_details)
]
这里大家可以看到当我url的路径包含了details/int:id的时候就会执行book_details方法
from django.urls import path
from city.views import *
urlpatterns = [
path('name/<str:cityname>',show_city_name),
]
通过浏览器的访问来说明这是怎么一回事
book_details.py文件
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def book_details(request,id):
text = "你选择的页码是:%s" % id
return HttpResponse(text)
大家看上图的URL地址栏可以清楚的看到我要访问的book->details,当我输入这个地址的时候,首先进入项目的urls.py文件进行查找,当找到了book所指向的urls.py文件的时候,就会包含这个文件继续进行解析,然后找到了匹配的urls,就执行了book_details方法,在显示器上进行了打印输出。
其实:这里可以说的在通俗点:就是在url的地址栏中,我遇到了book,就会找我设定的book对应的文件,进入文件后继续查找对应的url,知道找到对应方法进行执行,如果找不到就会报404错误。
所以,通过这样的方式可以进行更好的管理urls路由,使我们的代码更加清晰