Python urls.py的三种配置写法实例详解

下面是“Python urls.py的三种配置写法实例详解”的完整攻略:

简介

urls.py是Django中非常常用的配置文件,用于配置URL路由,即解析请求的URL路径并确定需要哪个视图函数处理这个请求。本文将介绍Python中urls.py的三种常见写法及其使用方法和示例。

第一种写法

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
    path('news/', views.news_list, name='news_list'),
    path('news/<int:pk>/', views.news_detail, name='news_detail'),
]

第一种写法采用了path()函数进行视图函数和URL的绑定,这是Django 2.0以后新引入的路径配置方式。其中,path()函数的第一个参数是URL路径,第二个参数是相应的视图函数,第三个参数是给这个URL起的名字。int:pk是一个路径参数,表示数字类型的主键值。

第二种写法

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

urlpatterns = [
    url(r'^$', views.index, name='index'),
    url(r'^news/$', views.news_list, name='news_list'),
    url(r'^news/(?P<pk>\d+)/$', views.news_detail, name='news_detail'),
]

第二种写法采用了url()函数进行视图函数和URL的绑定,这是Django 1.x版本中一种常见的路径配置方式。其中,url()函数的第一个参数是URL正则表达式,第二个参数是相应的视图函数,第三个参数是给这个URL起的名字。(?P<pk>\d+)是一个参数组,表示数字类型的主键值。

第三种写法

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^blog/', include('blog.urls')),
]

第三种写法采用了include()函数进行模块的引入,这是一个常见的路由配置方式,允许Django应用组织成多个子模块。其中,第一个参数是URL前缀,第二个参数是要包含的路由配置文件。

示例

示例1

假设我们要建立一个blog网站,包括文章列表(news_list)、文章详情页(news_detail)和评论列表(comment_list)等页面。我们可以按照第一种写法进行路由的配置:

from django.urls import path
from . import views

urlpatterns = [
    path('', views.news_list, name='news_list'),
    path('<int:pk>/', views.news_detail, name='news_detail'),
    path('<int:pk>/comments/', views.comment_list, name='comment_list'),
]

这里我们使用了三个不同的URL路径,分别对应着文章列表页、文章详情页和评论列表页。我们将这些路径链接到对应的视图函数,并为它们命名,方便在模板中使用。

示例2

如果我们的blog网站采用了子模块(submodule)进行部署,我们可以按照第三种写法进行路由的配置:

from django.urls import path
from . import views

app_name = 'blog'

urlpatterns = [
    path('', views.news_list, name='news_list'),
    path('<int:pk>/', views.news_detail, name='news_detail'),
    path('<int:pk>/comments/', views.comment_list, name='comment_list'),
]

这里我们为这个模块命名为blog,并使用了app_name来声明这个名称。除此之外,我们的路由配置与示例1是完全一致的。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python urls.py的三种配置写法实例详解 - Python技术站

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

相关文章

  • 用python解压分析jar包实例

    当我们需要了解或者修改一个Java程序中的某些内容时,常常需要对Java程序中的.jar文件进行解压、分析和修改,这就需要使用到Python的相关库和工具。 以下就是一份用Python解压分析jar包的完整攻略: 步骤一:安装相关工具和库 安装Java开发工具包(JDK):Java Development Kit 安装Python解压缩库:jaraco.zi…

    python 2023年6月3日
    00
  • 超详细注释之OpenCV更改像素与修改图像通道

    下面是关于“超详细注释之OpenCV更改像素与修改图像通道”的完整攻略。 OpenCV更改像素与修改图像通道 1. Opencv更改单个像素值 我们可以通过以下代码使用OpenCV更改单个像素值: import cv2 # 读取图像 img = cv2.imread(‘test.jpg’) # 取得像素的值 pixel = img[50, 50] # 修改像…

    python 2023年6月2日
    00
  • python中 r”, b”, u”, f” 有什么区别?

    我们在使用Python时,经常看到字符串前缀带有r、b、u、f等符号,本文将带您了解这些字符前缀之间的区别。 r:原始字符串 r”,表示的是原始字符串。相对于普通字符串,原始字符串中的内容会原样输出。即使字符串中含有转义字符,如常见的换行符“\n”、缩进符“\t”等,在原始字符串中它们不会进行转义,都会原样输出。 例如: print(r'my n…

    2022年11月28日
    00
  • python中的json模块常用方法汇总

    Python中的JSON模块常用方法汇总 在Python中,JSON是一种非常常用的数据格式,使得数据的序列化和反序列化变得轻松简单。 JSON模块简介 JSON模块是Python的标准库,可以通过import json的方式进行引用。JSON模块主要提供四个方法,分别是:dump、dumps、load、loads。 1. dump方法 dump方法可以将P…

    python 2023年6月3日
    00
  • Python字典实现伪切片功能

    Python 中的字典没有类似于列表或字符串那样的切片功能。但是,我们可以通过使用 itertools.islice() 和字典的键来实现类似于切片的功能。下面是实现这一功能的完整攻略。 第一步:导入必要的模块 itertools.islice()是我们需要的主要模块,因此我们需要导入它。 import itertools 第二步:创建字典 我们需要一个字典…

    python 2023年5月13日
    00
  • python小程序之4名牌手洗牌发牌问题解析

    Python小程序之4名牌手洗牌发牌问题解析 问题描述 有4名玩家,每人一副扑克牌,先进行洗牌(越乱越好),然后依次发牌,每人发13张牌。请编写Python程序来实现洗牌和发牌功能。 思路分析 定义一副扑克牌,并洗牌 定义四个玩家,每人发13张牌 代码实现 定义扑克牌并洗牌 import random # 定义一副扑克牌 poker = [‘黑桃A’, ‘黑…

    python 2023年5月23日
    00
  • Python语法学习之正则表达式的使用详解

    Python语法学习之正则表达式的使用详解 正则表达式是一种用于描述字符串模式的语言,可以用于匹配、查找、替换和割。在Python中,我们可以使用re块来使用正则表达式。本文将详细介绍Python中正则表达式的使用方法,包括正则表达式的语法、re模块的常用函数等。 正则表达式的语法 正则表达式的语法较复杂,但是掌握了基本的语法规则,就可以应对大部分的正则表达…

    python 2023年5月14日
    00
  • 详解Python 卡方决策

    Python 卡方决策(Chi-squared Test)是一种用于判断样本是否符合某种理论分布的方法。它通过计算样本与理论分布的偏离程度,来判断样本的合理性。在统计学中,卡方检验是一种广泛使用的非参数检验方法。 下面我们来详细讲解Python 卡方决策 的完整攻略。主要包含以下几个步骤: 1. 导入必要的包 首先我们需要导入必要的包,主要包括numpy和s…

    python-answer 2023年3月25日
    00
合作推广
合作推广
分享本页
返回顶部