Django进阶之视图概述和URL配置

文章介绍了Django中的视图概念,它是处理HTTP请求并返回响应的对象,响应可以是HTML、重定向等。详细讲解了URL配置,包括根级URL配置、正则表达式匹配以及在不同urls.py文件间的引入。此外,还重点阐述了URL的反向解析,用于在项目中通过别名动态生成路径,确保路径变更时链接的稳定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

视图方法,简称视图,它可以接收一个Web request对象并向客户端返回一个Web response对象。response可以是任何对象,如HTML文档、重定向、404异常、XML文档甚至一张图片。在视图方法中可以进行任意的业务逻辑处理,例如查询数据库操作等。

响应类型

响应过程

Url配置

指定根级url配置文件

在settings.py文件 的ROOT_URLCONF

ROOT_URLCONF = 'project.urls'

注:默认已经配置

urlpatterns

一个url实例的列表

匹配正则注意事项

如果想要从url中获取一个值,需要对正则加<>

匹配正则前方不需要加反斜杠

正则前需要加r表示字符串不转义

引入其他url配置

在应用中创建urls.py文件,定义本应用的url配置

from django.urls import path

# 引用当前应用视图

from . import views


urlpatterns = [

    path('', views.index, name='index'),

]

在根urls.py文件中使用include()方法

from django.contrib import admin

from django.urls import path, include


urlpatterns = [

    path('admin/', admin.site.urls),

    # 增加路由 指向myapp urls

    path('', include('myapp.urls'))

]

Url的反向解析

概述:如果在视图、模板中使用了硬编码链接,在url配置发生改变时,动态生成链接地址

解决:在使用链接时,通过url配置的名称,动态生成url地址

作用:使用url模板的时候,可以通过参数name为url地址的路径部分起一个别名,项目中就可以通过别名来获取这个路径。以后无论路径如何变化别名与路径始终保持一致。

设置视图和url

Url

urlpatterns = [
    path('', views.index, name='index'),
    path('<int:num>', views.detail, name='detail'),
    path('grades', views.grades, name='grades'),
    path('students', views.students, name='students'),
 ]

视图

def grades(request):
    """ 班级列表 """

    return HttpResponse('班级这是列表')

def students(request):
    """ 学生列表 """

    return HttpResponse('这是学生列表')

访问班级列表

访问学生列表

反向解析演示

1.修改学生列表路由正则

path('students222', views.students, name='students'),

2.在班级列表中设置跳转学生列表

from django.shortcuts import redirect
def grades(request):
    """ 班级列表 """

    return redirect('students')

3.跳转效果

视图中访问学生列表别名,访问到了变化后的学生列表路由。

总结

本文在视图概述的基础上,展示了响应类型和过程的图示;

并就URL配置介绍后演示了URL反向解析设置和效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

JSON_L

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

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

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

打赏作者

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

抵扣说明:

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

余额充值