讲课笔记07:设置路由分发规则

(一)设置路由分发规则

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

1、创建应用的路由文件(子路由) - urls.py

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

(1)创建index应用的路由文件

在index目录下创建urls.py文件,添加一个名为urlpatterns的空列表
在这里插入图片描述

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

在commodity目录下创建urls.py文件,添加一个名为urlpatterns的空列表
在这里插入图片描述

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

在shopper目录下创建urls.py文件,添加一个名为urlpatterns的空列表
在这里插入图片描述

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后面的斜杠是路径分隔符,其作用等同于计算机中文件目录的斜杠符号; admin.site.urls指向内置Admin功能所自定义的路由信息,可以在Python目录Lib\site-packages\django\contrib\admin\sites.py中找到具体的定义过程。
在这里插入图片描述

(二)路由分发详解

1、路由函数include的作用

在这里插入图片描述

在这里插入图片描述
三个命名空间对应的三个文件夹:index、commodity、shopper
在这里插入图片描述

(三)设置商城的路由地址

我们已在babys文件夹的urls.py分别为项目应用index、shopper和commodity设置路由分发功能,本节将会在项目应用index、shopper和commodity的urls.py定义网站首页、商品列表页、商品详细页、购物车页面、个人中心页面和用户登录注册页面的路由地址。

1、index应用的配置

(1)编写index应用的视图views.py

创建视图函数 - indexView
在这里插入图片描述

indexView为视图函数的名称
index.html对应模板文件夹下的一个模板文件
目前index.html只显示一条信息“母婴商城首页”
在这里插入图片描述render()用于渲染模板页面
代码如下所示:

首页

母婴商城首页

2、commodity应用的配置

(1)编写commodity应用的视图views.py
定义了两个视图函数:commodityView和detailsView
urlpatterns = [
path(‘.html’, commodityView,{‘user’:‘admin’},name=‘commodity’),
path(‘detail/int:id.html’, detailView, name=‘detail’)
]
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一个简单的面向对象编程的例子,涉及到三个类:Person(人类)、Teacher(老师类)和Student(学生类)。每个类都有自己的成员变量和成员方法,以下是每个类的具体实现: ```python class Person: def __init__(self, name, age): self.name = name self.age = age class Teacher(Person): def __init__(self, name, age): super().__init__(name, age) def teach(self): print(f"{self.name}正在讲课") class Student(Person): def __init__(self, name, age, score): super().__init__(name, age) self.score = score def study(self): print(f"{self.name}正在学习") ``` 在这个例子中,Person类是父类,而Teacher和Student类是子类。Teacher和Student类都继承自Person类,并且分别定义了自己的成员变量和成员方法。Teacher类的成员方法是teach,用于表示老师正在讲课,而Student类的成员方法是study,用于表示学生正在学习。在Teacher类的构造函数中,调用了父类Person的构造函数,以初始化父类的成员变量name和age。在Student类的构造函数中,除了调用父类Person的构造函数以初始化name和age,还定义了自己的成员变量score。 如果要创建一个名叫张三、年龄为30岁的老师对象,并调用teach方法,可以这样写: ```python teacher = Teacher("张三", 30) teacher.teach() ``` 如果要创建一个名叫李四、年龄为20岁、成绩为90分的学生对象,并调用study方法,可以这样写: ```python student = Student("李四", 20, 90) student.study() ``` 这样就完成了一个简单的面向对象编程的例子。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值