【Django框架】——19 Django视图 01 路由配置

发布于:2022-10-27 ⋅ 阅读:(347) ⋅ 点赞:(0)

在这里插入图片描述

在这里插入图片描述

一、视图介绍

视图就是应⽤用中views.py⽂文件中的函数
在这里插入图片描述

  • 视图的第⼀个参数必须为HttpRequest对象,还可能包含下参数如:
    通过正则表达式组获取的位置参数
    通过正则表达式组获得的关键字参数。

  • 视图必须返回⼀个HttpResponse对象或⼦子对象作为响应
    子对象:JsonResponse HttpResponseRedirect

  • 视图负责接受Web请求HttpRequest,进⾏行行逻辑处理理,返回Web响应HttpResponse给请求者,响应内容可以是HTML内容,404错误,重定向,json数据…

视图处理理过程如下图:
在这里插入图片描述

使⽤用视图时需要进⾏行行两步操作,两步操作不不分先后

  1. 配置URLconf

  2. 在应⽤用/views.py中定义视图


二、路由配置

通过在浏览器的地址栏中输入网址请求⽹网站 对于Django开发的网站,都是通过匹配路由找到相应视图来处理用户的请求。

1. 配置URLconf

settings.py文件中ROOT_URLCONF

# 指定根路路由位置
ROOT_URLCONF = '项⽬目⼯工程同名⽬目录.urls'

在这里插入图片描述

2.编辑项目中urls.py(根路由)

# 匹配成功后,包含到应⽤用的urls.py
re_path(正则, include('应⽤用.urls'))

在这里插入图片描述

3.创建应用中 urls.py (子路路由)

# 匹配成功后,调⽤用views.py对应的函数
re_path(正则, views.函数名)

在这里插入图片描述

4.路由文件urls.py

https://docs.djangoproject.com/en/2.2/topics/http/urls/
在这里插入图片描述

from django.urls import include, path,re_path

urlpatterns = [
    path('index/', views.index, name='main-view'),
    path('bio/<username>/', views.bio, name='bio'),
    path('articles/<slug:title>/', views.article),
    path('articles/<slug:title>/<int:section>/', views.section),
    path('weblog/', include('blog.urls')),

    # re_path(r'^index/$', views.index),
    
    # re_path(r'^bio/(?P<username>\w+)/$', views.bio),
    
    # re_path(r'^weblog/', include('blog.urls')),
]

5.API讲解

path(route, view, kwargs=None, name=None)

re_path(route, view, kwargs=None, name=None)

include(module, namespace=None)

route: 匹配路路径开始不不加 /,末尾加/

route:称为匹配路路径

url: http://www.baidu.com/news/?wd=django

url中的news/ 称为请求路路径

程序执⾏行行后是将⽹网址中的请求路路径和匹配路路径进⾏行行匹配。

说明:
虽然路路由结尾带/能带来上述好处,但是却违背了HTTPURL表示资源位置路路径的设计理理念。

是否结尾带/以所属公司定义风格为准。

Django 找不不到所匹配的请求 URL 时,或引发了了异常时,Django 会调⽤用一个错误处理理视图。

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到