Django笔记(二)模块化url路由

版权声明:转载请注明本文链接 https://blog.csdn.net/qq_31844349/article/details/85270387

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也是一样的,等下呢在下面我通过实际的例子来讲解

book项目下的urls.py

from django.urls import path
from book.views import *
urlpatterns = [
    path('details/<int:id>',book_details)
]

这里大家可以看到当我url的路径包含了details/int:id的时候就会执行book_details方法

city项目下的urls.py

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路由,使我们的代码更加清晰

猜你喜欢

转载自blog.csdn.net/qq_31844349/article/details/85270387
今日推荐