前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用人话讲解django之url路由系统学习

用人话讲解django之url路由系统学习

作者头像
用户4945346
发布2020-06-16 10:21:45
6960
发布2020-06-16 10:21:45
举报
文章被收录于专栏:pythonista的日常pythonista的日常

对于高质量的Web 应用来说,使用简洁、优雅的URL 模式是一个非常值得重视的细节。Django 允许你自由地设计你的URL,不受框架束缚。

在Django中,定义URLconf包括正则表达式、视图两部分,Django使用正则表达式匹配请求的URL,一旦匹配成功,则调用应用的视图。

假如我的项目有两个应用分别是 app01 和 app02, 项目结构如下:

我需要两个 url 分组来映射两个app 应用。首先在根目录下的 django_tutrital2/urls.py 文件写两个路由 app01 app02分组:

代码语言:javascript
复制
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 内容:

代码语言:javascript
复制
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 内容如下:

代码语言:javascript
复制
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 ,然后指定由哪个视图函数处理对应的网络请求。

项目源码地:https://github.com/zxycode-2020/django_tutrital2/tree/master

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 pythonista的日常 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档