zoukankan      html  css  js  c++  java
  • Django中的path函数

    path( )作用:解析URL地址

      path( ) 标准语法: (<>为必须的参数,[]为可选参数)

    path(<route>, <view>, [name=None,**kwargs])   

    下面就具体的解释:

      route 表示路径,从端口以后的URL地址,到/结束   即 https://i-beta.cnblogs.com/之后的路径

      从 urlpattern 的第一项开始,按顺序依次匹配列表中的项,直到找到匹配的项。

      view 表示route匹配成功后,需要调用的视图,view 必须是一个函数或者是引用其他的URLconfs(urls.py)即路由模块

      如:

      urlpatterns = [

        path('polls/',include('path.urls')),

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

      ]

      name 表示的是route匹配到的URL的一个别名

      **kwargs  表示一个字典,该参数没有具体命名,只是字典形式,而且该参数只能在视图函数中读取和使用。

      见如下代码:

      #     path(        <route>,                        <view>,              **kwargs,    name)  

      #---------------------------------------------------------------

      re_path(‘dict/(?P<year>[0-9]{4}).html’,views.myyear_dict, {'month':'05'},name='myyear_dict')

      #其中的字典参数传递给视图函数myyear_dict

      def myyear_dict(request, year, month):             #变量year来自URL

        return render(request, 'myyear_dict.html',{'month':month})

      #视图函数myyear_dict获取到了变量year和month,并将参数month的值传递到HTML模板(myyear_dict.html)并生成HTML网页返回给用户

    <!DOCTYPE html>

    <head>

      <meta charset="UTF-8">

      <title>TItle</title>

    </head>

    <body>

    <a href="{% url 'myyear_dict' 2018 %}">2018 {{month}}  Archive</a>                #使用视图函数传过来的month值

    </body>

    </html>

    官方文档的解释如下:

    函数 path() 具有四个参数,两个必须参数:routeview,两个可选参数:kwargsname。现在,是时候来研究这些参数的含义了。

    path()参数: route

    route 是一个匹配 URL 的准则(类似正则表达式)。当 Django 响应一个请求时,它会从 urlpatterns 的第一项开始,按顺序依次匹配列表中的项,直到找到匹配的项。

    这些准则不会匹配 GET 和 POST 参数或域名。例如,URLconf 在处理请求 https://www.example.com/myapp/ 时,它会尝试匹配 myapp/ 。处理请求 https://www.example.com/myapp/?page=3 时,也只会尝试匹配 myapp/

    path() 参数: view

    当 Django 找到了一个匹配的准则,就会调用这个特定的视图函数,并传入一个 HttpRequest 对象作为第一个参数,被“捕获”的参数以关键字参数的形式传入。稍后,我们会给出一个例子。

    path() 参数: kwargs

    任意个关键字参数可以作为一个字典传递给目标视图函数。本教程中不会使用这一特性。

    path() 参数: name

    为你的 URL 取名能使你在 Django 的任意地方唯一地引用它,尤其是在模板中。这个有用的特性允许你只改一个文件就能全局地修改某个 URL 模式。

  • 相关阅读:
    关于在MAC上进行 LARAVEL 环境 Homestead 安装过程记录
    js 贷款计算器
    js 实现阶乘
    js 两点间距离函数
    composer Your requirements could not be resolved to an installable set of packages
    vue 项目优化记录 持续更新...
    vue 项目打包
    vue 真机调试页面出现空白
    vue 真机调试
    谈谈-Android状态栏的编辑
  • 原文地址:https://www.cnblogs.com/xiaohaodeboke/p/11842668.html
Copyright © 2011-2022 走看看