如何理解django中url路由系统,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
对于高质量的Web 应用来说,使用简洁、优雅的URL 模式是一个非常值得重视的细节。Django 允许你自由地设计你的URL,不受框架束缚。
在Django中,定义URLconf包括正则表达式、视图两部分,Django使用正则表达式匹配请求的URL,一旦匹配成功,则调用应用的视图。
假如我的项目有两个应用分别是 app01 和 app02, 项目结构如下:
我需要两个 url 分组来映射两个app 应用。首先在根目录下的 django_tutrital2/urls.py 文件写两个路由 app01 app02分组:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('app01/', include('app01.urls')),
path('app02/', include('app02.urls')),
]
以【path('app01/', include('app01.urls')),】为例,第一个 app01 是你在浏览器上输入的 url 内容,include 里的 app01 是应用的名称,指向 app01 应用的 urls.py 文件。django_tutrital2/app01/urls.py 内容:
from django.urls import path, include
from app01.views import index, article, test_url
urlpatterns = [
path('index/', index),
path('article/<str:aid>/', article),
path('test_url/', test_url),
]
以【path('index/', index),】为例,第一个 index 是你在浏览器上输入的 url 内容,后面的index 是views.py 中对应函数名称,这样 index 函数对应的url 是 http://127.0.0.1:8000/app01/index/
django_tutrital2/app01/views.py 内容如下:
from django.shortcuts import render, HttpResponse
# Create your views here.
def index(request):
return HttpResponse("这个是首页--app01")
def article(request, aid):
return HttpResponse('这是第{}篇文章'.format(aid))
def test_url(request):
return HttpResponse('url测试--app01')
浏览器输入对应的url http://127.0.0.1:8000/app01/index/
浏览器输入对应的url http://127.0.0.1:8000/app02/index/
url 部分内容还能被当做参数,比如说要看第5篇文章,以【path('article/<str:aid>/', article),】 为例,完整的 url 是
http://127.0.0.1:8000/app01/article/5/
总的来说 url 就是匹配用户在浏览器输入的 url ,然后指定由哪个视图函数处理对应的网络请求。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。