Django如何处理URL请求
django 如何 处理 请求 url
2023-06-13 09:11:06 时间
- Django从配置文件中根据
ROOT_URLCONF
找到主路由文件,也就是我们的主目录下的urls.py
- Django找到
urls.py
中的urlpatterns
变量,该内容是一个包含多个路由的数组.
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),
]
- 依次匹配
urlpatternes
中的path
- 匹配成功-调用对应函数视图
- 匹配失败-返回404
视图函数
视图函数是一个用来接收浏览器请求(HttpRequest)对象并通过HttpRequest
对象返回响应函数。此函数可以接收浏览器请求并根据业务逻辑返回相应的内容.
语法
# 第一个参数必须为Request,其他参数可以依次向后写
def api_tools(request):
return HttpResponse
路由配置
from django.urls import path
ali = {
path(route,views,name=None),
path(route2,views.page2)
}
参数;
1. route: 字符串类型,匹配请求路径
2. views: 指定路径对应视图处理函数的名称,需要与views匹配
3. name: 为地址起别名,在模板中地址反向解析时使用
Path转换器
语法
<转换器类型:自定义名>
path('page/<int:page>',views.page)
# 以下是视图函数内容
def test(request,page_num):
return HttpResponse(page_num)
作用:若转换器类型匹配到对应类型的数据,则将数据按照关键字传参的方式传递给视图函数。
转换器类型
str
:匹配除了/
之外的非空字符串
/v1/api/<str:toolsname>
匹配
/v1/api/coretools
int
: 匹配或任何整数,可以返回一个Int
/v1/api/<int:page>
匹配
/v1/api/100
slug
: 匹配任意由ASCII字母或数字以及连字符和下划线组成的短标签
/v1/api/<slug:sl>
匹配
/v1/api/this-is-user_list
path
:匹配非空字段,包括路径分隔符/
/v1/api/<path:ph>
匹配
/v1/api/a/b/c
re_path
在url的匹配过程中可以使用正则表达式进行精确匹配
语法
from django.urls import re_path
re_path(reg,view,name=xxx)
# 正则表达式为命名分组模式(?P<name>pattern)匹配提取参数后用关键字传参方式传递给视图函数
相关文章
- 数据透视表上线!如何在纯前端实现这个强大的数据分析功能?
- Python+virtualenv+Django+nginx+uwsgi+centos7部署web应用
- Django连接Mysql配置
- python django环境搭建_python的django框架
- django 菜鸟篇+进阶篇[通俗易懂]
- Django菜鸟教程学习记录(一)
- django实现分页_vue json
- Django添加全文检索功能
- 【Django】在大型项目中的django的性能模型字段primary_key
- Django Swagger文档库drf-spectacular
- django admin 根据新增还是编辑来显示 readonly_fields 字段
- Django REST Framework-路由的正则表达式
- Django REST Framework-如何使用视图集(二)
- django 操作mysql详解数据库
- Django Rest Framework源码剖析(八)—–视图与路由详解编程语言
- django 执行原生的sql详解编程语言
- Django 面临困境 欲重组核心团队
- 如何 Docker 化 Python Django 应用程序
- 如何借助 Django 来编写一个 Python Web API
- 如何在Django中创建自己的自定义用户模型?