Django设置路由分发规则

本文详细介绍了Django项目的路由配置和分发规则,包括如何在urls.py中设置路由分发,如何为每个应用创建独立的urls.py文件,以及如何使用path和include函数。还讲解了路由命名空间namespace的使用,以及路由设计模式的工作原理。同时,通过实例展示了如何为index、commodity和shopper应用配置路由,包括视图函数、路由变量和命名规则,以实现首页、商品列表、商品详情、购物车和个人中心等功能。
摘要由CSDN通过智能技术生成

(一)复习
创建项目(django-admin startproject XXX)
创建应用(python manage.py startapp XXX)
配置应用、模板、数据库、静态资源、媒体资源
内置指令(30个,必须了解每个指令的具体作用)
(二)路由
路由称为URL (Uniform Resource Locator- 统一资源定位符),也可以称为URLconf, 是对可以从互联网上得到的资源位置和访问方法的一种简洁表示,是互联网上标准资源的地址。互联网上每个文件都有一个唯一的路由,用于指出网站文件的路径位置。简单地说,路由可视为我们常说的网址,每个网址代表不同的网页。

二、新课讲授
(一)设置路由分发规则
一个完整的路由包含:路由地址、视图函数(或者视图类)、路由变量和路由命名。其中基本的信息必须有:路由地址和视图函数(或者视图类),路由地址即我们常说的网址;视图函数(或者视图类)即项目应用(App)的views.py文件所定义的函数或类;路由变量和路由命名是路由的变量和命名设置,使路由具有动态变化和命名引用功能。(动态变化是指一个路由地址按照某个规律演变多种不同的路由地址:命名引用是指在视图、模型等其他项目文件使用路由命名生成相应的路由地址)

在默认情况下,设置路由地址是在项目同名的文件夹的urls.py文件里实现,这也是由配置文件settings.py的ROOT_URLCONF决定,以项目babies为例,配置属性ROOT_URLCONF指向babies文件夹的urls.py,如下图所示:

一个项目中可能设有多个项目应用(App),而babies文件夹的urls.py是定义项目所有路由地址的总入口,如果项目中所有路由地址都在babies文件夹的urls.py中定义,当项目功能规模越来越大的时候,babies文件夹的urls.py定义的路由地址就会越来越多,从而造成难以管理的问题。

为了更好区分各个项目应用(App)的路由地址,我们在babies文件夹的urls.py中分别为每个项目应用(App)定义一条路由入口。首先在每个项目应用(App)的文件夹里创建urls.py文件,然后将新建的urls.py添加到babies文件夹的urls.py,添加方法由Django内置函数path和include实现。

1、创建应用的路由文件(子路由) - urls.py
每个应用(App)均创建一个路由文件urls.py,目前没有什么具体内容,只写一条语句,定义一个空列表urlpatterns:

urlpatterns = [

]
在这里插入图片描述

 

(2)创建commodity应用的路由文件

在这里插入图片描述

 

3)创建shopper应用的路由文件

在这里插入图片描述

 

2、配置项目的路由文件(主路由) - urls.py

(1)定义项目的路由集合

  • 使项目的urls.py的urlpatterns指向每个应用的urls.py,具体配置如下:
    在这里插入图片描述

 

(2)主路由文件代码说明
babies文件夹的urls.py定义了5条路由信息,分别是Admin站点管理、首页地址(项目应用index的urls.py) 、商品信息(项目应用commodity的urls.py) 、购物车信息(项目应用shopper的urs.py)和媒体资料。其中, Admin站点管理在创建项目时己自动生成,一般情况下无须更改。整个babies文件夹的urls.py的代码说明如下:

from django.contrib import admin:导入内置Admin功能模块。
from django.urls import path,include:导入Django的路由函数模块。
urlpatterns:代表整个项目的路由集合,以列表格式表示,每个元素代表一条路由信息。
path('admin/', 'admin.site.urls'):设定Admin管理系统的路由信息。'admin/'代表127.0.0.1:8000/admin的路由地址,admin后面的斜杠是路径分隔符࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值