第三章:Django的路由与视图

系列文章目录

第一章 :Django安装与配置虚拟环境

第二章:django各模块的作用以及参数说明


文章目录

目录

系列文章目录

文章目录

前言

一、子应用创建注册路由

1.创建

 2.注册

 3.路由配置

 二.重定向

1.通过路由别名方式重定向redirect

2.通过视图函数名称来进行重定向redirect(reverse(day03))



前言

我们实现django的各种功能都会创建一个子应用去实现,子应用要使用子路由去访问,这一章我们来了解路由配置,重定向,请求。

一、子应用创建注册路由

1.创建

切换到项目根目录下输入python manage.py startapp books

python manage.py startapp books

完成后没有什么提示信息,我们刷新,会发现多了一个子应用的目录

 注意:如果报这行错误,请切换到项目根目录运行

 2.注册

在上一章中讲过一个叫做安装子应用的目录INSTALLED_APPS,我们在setting中找到他,添加上'应用名.apps.BooksConfig',其实就是一个子应用的配置类,这样就注册好了

 3.路由配置

总路由配置

需要使用django里的include方法是总路由与子路由连接起来,但是子路由我们现在还没有,首先要在子应用文件里创建一个叫做urls.py的文件,在总路由中使用include连接起来

path('index/', include('books.urls')),

创建的子路由中没有路由配置,我们要手动添加,可以参考总路由中的注释,模仿总路由写一个出来

# 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
urlpatterns = [
    # name给当前路由起别名
    path('hahaha', views.index, name='index')
]

 path中

第一个参数指定路由,空值时候可以使用127.0.0.1:8000/index直接访问,如果没有设置第一个参数,可以使用127.0.0.1:8000/index/来访问,路由组成是这样127.0.0.1:8000/总路由名/分路由名

总路由第一个路径参数也可以为空,如果总路由与子路由的第一个参数都为空的话,就可以直接使用127.0.0.1:8000来访问

第二个参数指定方法

这里的方法是在子应用视图view中的方法,我们可以来写一个

打开views.py​​​​​​,创建一个方法,django会自动传入一个请求request的参数,我们返回一个response

from django.http import HttpResponse
from django.shortcuts import render


# Create your views here.
def index(req):
    return HttpResponse("hello")

 把方法路径放入第二个参数中

第三个参数指定别名

重定向时候使用

可以不设置

ps:path可以使用re_path代替,更加规范

4.访问子应用

 二.重定向

1.通过路由别名方式重定向redirect

我们可以使用redirect('路由别名')

注意:必须要使用路由别名去重定向,使用视图函数名会找不到,如果有多个app的话避免别名重复,会引入命名空间这个概念,命名空间就是使多个不同项目之间隔离起来,我们可以在添加主路由时候在include函数中添加namespace='index'      index是命名空间的名字可以自由取

path('', include('books.urls', namespace='index'))

然后去到子路由添加

app_name = 'index'

这时候在重定向引用时候可以使用命名空间:路由别名来重定向,就像这样

def day01(req):
    return redirect('index:day03')

当然,不使用命名空间也可以成功跳转,使用命名空间主要是把每个应用之间隔离起来

这时我们在浏览器输入当前路由,按下回车,地址栏会自动变为跳转后的路由地址

2.通过视图函数名称来进行重定向redirect(reverse(day03))

def day01(req):
    # return redirect('index:day03')
    return redirect(reverse(day03))

参数可以直接传入函数名,效果与使用使用路由别名一致

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豪豪喜欢吃猪肉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值