django中path和url函数的具体使用

在Django中,path和url函数用于先匹配URL并执行相应视图函数。

path函数的使用

语法结构

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

参数说明

  • route:字符串类型,表示 URL 规则
  • view:处理请求的函数(视图函数), 每个视图都有一个函数视图对应
  • kwargs:字典类型,传递额外的参数给视图函数
  • name:给这个URL起一个别名,可以在模板中使用该别名直接指定URL

示例 1

下面是一个基本的 path 函数示例:

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
    path('about/', views.about, name='about'),
]
  • ' ': 表示根URL。
  • 'about/': 表示导航菜单栏中的“About”页面。

示例 2

接下来的示例展示了如何使用path函数传递slug参数:

from django.urls import path
from . views import ProductDetailView

urlpatterns = [
    path('<slug:slug>/', ProductDetailView.as_view(), name='product_detail_url'),
]
  • '<slug:slug>/': 表示动态生成的URL,格式为http://domain.com/slug,其中 <slug:slug> 是一个变量,在视图函数中可以使用该变量查询数据库并显示相应内容。

url函数的使用

语法结构

url(regex, view, kwargs=None, name=None)

参数说明

  • regex:正则表达式字符串或者复合对象
  • view:处理请求的视图函数,每个视图都有一个函数视图对应
  • kwargs:字典类型,传递额外的参数。Django 2.x 以上版本开始不支持该参数,可以将添加的参数放置在视图里。
  • name:给这个URL起一个别名,可以在模板中使用该别名部分指定URL

示例

下面是一个使用url函数定义URL映射的示例:

from django.conf.urls import url
from myapp.views import my_view

urlpatterns = [
    url(r'^archive/$', my_view), 
    url(r'^about/$', my_view),
    url(r'^blog/$', my_view),
]
  • '^archive/$''^about/$''^blog/$': 表示单独URL,使用了正则表达式字符串匹配URL。

总结:path 函数是 Django 引入的一种简化 URL 配置的方式,它直接匹配目录名或者前缀,并将剩余的位传递给应用视图,通常使用path函数;url 函数则使用正则表达式来匹配 URL,并且这两个函数都能用于配置 URL 映射。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:django中path和url函数的具体使用 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • django的form常用字段和参数

    Django 的内置字段 Field required=True#请求不能为空 widget=None#HTML插件 label=None#用于生成lable标签或显示内容 initial=None#初始值 help_text=”#帮助信息(在标签旁边显示) error_messages=None#(错误信息{‘required’:’不能为空’,‘inva…

    Django 2023年4月13日
    00
  • django-rest-framework框架 第三篇 之CRUD视图扩展类(增删改查的优化)

    CRUD视图扩展类 1  CreateModelMixin 2  RetrieveModelMixin 3  UpdateModelMixin 4  DestroyModelMixin <1> 创建扩展类   CreateModelMixin 提供create(request, *args, **kwargs) 这个方法 实现了创建、保存一个新m…

    Django 2023年4月11日
    00
  • Django easy_thumbnails 学习心得

    一些 Django 的easy_thumbnails 的学习心得 。 如果你不知道Django是什么,不知道easy_install是什么,请留步,别浪费时间往下读了。 GIt:  https://github.com/SmileyChris/easy-thumbnails model.py class Images(models.Model): image…

    Django 2023年4月13日
    00
  • Django Rest Framework之用户频率/访问次数限制

      settings.py: REST_FRAMEWORK = { ‘DEFAULT_THROTTLE_CLASSES’:[‘api.utils.mythrottle.UserThrottle’,] ‘DEFAULT_THROTTLE_RATES’: { ‘未认证用户’: ’10/m’, ‘已认证用户’: ‘100/h’, }, }   mythrottle…

    2023年4月9日
    00
  • django中websocket的具体使用

    下面我将为你详细讲解 Django 中 WebSocket 的具体使用,并提供两个示例说明。 什么是 WebSocket WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。它使得浏览器和服务器之间可以在任何时候异步地进行数据传输,这使得实时 Web 应用程序成为可能。 在 WebSocket 协议之前,要实现实时通信,必须使用轮询或长轮询…

    Django 2023年5月16日
    00
  • django admin 登陆快速添加验证码功能

    1. 安装包 pip install django-multi-captcha-admin django-simple-captcha   2. setting.py INSTALLED_APPS = [ ‘xxxxxxx’, #系统内置的模块 ‘….’, ‘app01’, ‘multi_captcha_admin’, #1 ‘django.contri…

    Django 2023年4月13日
    00
  • django 权限设置-菜单显示

    问题:在用户登录后,如何只显示出用户权限的菜单呢?需要设置显示菜单权限 1.为了显示菜单,需要在models权限上添加is_menu(手动判断是否是查看)的icon(图标字符串) 在rbac中录入另一个的权限,判断是否显示菜单的,若是没有,返回一个空列表[],有则添加session中permission_menu_list=[{},{}] 1 from rb…

    Django 2023年4月12日
    00
  • [django]django配合前端vue前后端联调,django服务端解决跨域(django-cors-headers)

    https://www.cnblogs.com/iiiiiher/articles/9164940.html 前端写了个页面,里面$.post发现403错误. 需要注释下 前后端联调的跨域问题 前端可能是127.0.0.1:3000 后端127.0.0.1:8080导致前端不能正常访问 https://github.com/ottoyiu/django-co…

    Django 2023年4月10日
    00
合作推广
合作推广
分享本页
返回顶部