前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django如何处理URL请求

Django如何处理URL请求

作者头像
Yuou
发布2022-09-26 15:32:57
1.8K0
发布2022-09-26 15:32:57
举报
文章被收录于专栏:乱七八糟技术日常
  1. Django从配置文件中根据ROOT_URLCONF找到主路由文件,也就是我们的主目录下的urls.py

  1. Django找到urls.py中的urlpatterns变量,该内容是一个包含多个路由的数组.
代码语言:javascript
复制
from django.contrib import admin
from django.urls import path
from . import views
# 项目的主路由配置-HTTP进入请求Django后,优先调用urls

urlpatterns = [
    path('admin/', admin.site.urls),
    path('apps/django/',views.apps_dijango),
]
  1. 依次匹配urlpatternes中的path
  2. 匹配成功-调用对应函数视图
  3. 匹配失败-返回404

视图函数

视图函数是一个用来接收浏览器请求(HttpRequest)对象并通过HttpRequest对象返回响应函数。此函数可以接收浏览器请求并根据业务逻辑返回相应的内容.

语法

代码语言:javascript
复制
# 第一个参数必须为Request,其他参数可以依次向后写
def api_tools(request): 
    return HttpResponse

路由配置

代码语言:javascript
复制
from django.urls import path
ali = {
    path(route,views,name=None),
    path(route2,views.page2)
}
参数;
1. route: 字符串类型,匹配请求路径
2. views: 指定路径对应视图处理函数的名称,需要与views匹配
3. name: 为地址起别名,在模板中地址反向解析时使用

Path转换器

语法

代码语言:javascript
复制
<转换器类型:自定义名>
path('page/<int:page>',views.page)
# 以下是视图函数内容
def test(request,page_num):

    return HttpResponse(page_num)

作用:若转换器类型匹配到对应类型的数据,则将数据按照关键字传参的方式传递给视图函数。

转换器类型

  • str:匹配除了/之外的非空字符串
代码语言:javascript
复制
/v1/api/<str:toolsname>
    	匹配
/v1/api/coretools
  • int: 匹配或任何整数,可以返回一个Int
代码语言:javascript
复制
/v1/api/<int:page>
    	匹配
/v1/api/100
  • slug: 匹配任意由ASCII字母或数字以及连字符和下划线组成的短标签
代码语言:javascript
复制
/v1/api/<slug:sl>
    	匹配
/v1/api/this-is-user_list
  • path:匹配非空字段,包括路径分隔符/
代码语言:javascript
复制
/v1/api/<path:ph>
    	匹配
/v1/api/a/b/c

re_path

在url的匹配过程中可以使用正则表达式进行精确匹配

语法

代码语言:javascript
复制
from django.urls import re_path

re_path(reg,view,name=xxx)
# 正则表达式为命名分组模式(?P<name>pattern)匹配提取参数后用关键字传参方式传递给视图函数
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 视图函数
  • 路由配置
    • Path转换器
      • re_path
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档