Django 2.0 尝试使用正则表达式获取主键,但我得到 404

     2023-02-24     149

关键词:

【中文标题】Django 2.0 尝试使用正则表达式获取主键,但我得到 404【英文标题】:Django 2.0 Trying to Grab the primary key with regular Expressions but im getting 404 【发布时间】:2018-09-25 09:15:26 【问题描述】:

这是我的代码..

urlpatterns =[
path('',views.School_Lview.as_view(),name='list'),
path('(?P<pk>\d+)/',views.School_Dview.as_view(),name='detail')
]

我正在尝试让这个模板工作

% for school in schools %
<h2><li><a href="school.id"> school.name</a></li></h2>
% endfor%

【问题讨论】:

我正在尝试链接特定学校(以及其他学校)详细视图.. 在 url 中试试这个,your_app_name/'(?P\d+)/ 它说应用程序未定义..我正在使用 django2.0 所以 url() 不起作用所以我使用路径..***.com/questions/47947673/… 它应该可以工作,你做错了什么,你有没有在settings.py中注册你的应用程序???? 感谢@Sagar 的帮助 【参考方案1】:

我修复了它...我使用了 re_path 而不是路径,它就像一个魅力..

re_path('(?P<pk>\d+)/',views.School_Dview.as_view(),name='detail')

【讨论】:

【参考方案2】:

django2.0 不支持在 django.urls.path() 中使用正则表达式,否则如果你真的想在你的 url 中写正则表达式,我会建议你使用 django.urls.re_path() 这是旧版本的新功能 django.conf.urls.url

path()re_path()

的区别

使用 path() 你的网址会写成:

from urls import path
urlpatterns =[
   path('',views.School_Lview.as_view(),name='list'),
   path('<int:pk>/',views.School_Dview.as_view(),name='detail')
]

使用 re_path()

from urls import path
 urlpatterns =[
    re_path('',views.School_Lview.as_view(),name='list'),
    re_path('(?P<pk>\d+)/',views.School_Dview.as_view(),name='detail')
 ]

查看official documentation 以了解有关 django2.0 中 url 路由的更多信息

【讨论】:

【参考方案3】:

虽然答案是正确的,但我只是想指出 Django 实际上使用正则表达式 [0-9]+ 而不是 \d+ 作为主键。

它们都具有相同的效果,但here 您可以看到隐藏在“新”路径语法后面的所有默认转换器及其正则表达式。

【讨论】:

url中的正则表达式。 django 2.0中的py

】url中的正则表达式。django2.0中的py【英文标题】:regularexpressioninurls.pyindjango2.0【发布时间】:2018-12-0901:01:39【问题描述】:如何在django2.0中编写这两个url,包括它们的正则表达式?非常感谢。url(r\'^page/(?P<id>\\S+_[0-9]3,)\',vie... 查看详情

Django 2.0 中的反向 URL

...更新打破了我反转url并将其打印到模板的方式。使用正则表达式,它可以正常工作,但是当使用新的简化方式时,它会返回错误。NoReverseMatchat/blog/archive/Reversefor\'article\'withkeywordarguments\' 查看详情

django url 正则表达式不匹配

】djangourl正则表达式不匹配【英文标题】:djangourlregexdoesn\'tmatch【发布时间】:2011-08-1717:50:58【问题描述】:在开发服务器上使用Django1.3我尝试联系:http://127.0.0.1:8000/lang/en答案是:使用定义在pruebas.urls,Django尝试了这些URL模式... 查看详情

使用 Django ORM 中的列过滤器获取主键 ID

】使用DjangoORM中的列过滤器获取主键ID【英文标题】:GetPrimarykeyidwithColumnfilterinDjangoORM【发布时间】:2020-05-0621:37:34【问题描述】:我的Postgresql中有一张books表。下图是表结构的样子。现在,我有book_name“249”,我想获取其对应... 查看详情

获取 Django url 正则表达式中的多个参数

】获取Djangourl正则表达式中的多个参数【英文标题】:MultipleParamsingetDjangourlregex【发布时间】:2016-04-1818:56:35【问题描述】:我需要在url中传递两个参数:例如:http://127.0.0.1:8000/events/103,104/3/这里param1=103,104param2=3我使用的网址... 查看详情

django2.0的路由如何实现正则表达式(代码片段)

在django2.0的路由系统中,摒弃了1.x中的url,而改用path。需要导入path。fromdjango.urlsimportpath,re_path在1.x中,使用url()即可实现正则匹配,但是在2.0中,是否使用正则需要使用不同的方式。path()无法使用正则;re_path()可以使... 查看详情

Django - 使用 unicode 主键获取对象

】Django-使用unicode主键获取对象【英文标题】:Django-Getobjectwithunicodeprimarykey【发布时间】:2016-03-0212:30:17【问题描述】:我无法选择具有MySQL数据库并使用主键CharField的部门。我收到以下错误:DoesNotExist:部门匹配查询不存在。... 查看详情

尝试在 Python / pandas 中使用正则表达式获取子字符串

】尝试在Python/pandas中使用正则表达式获取子字符串【英文标题】:TryingtogetasubstringusingregexinPython/pandas【发布时间】:2019-07-0603:08:18【问题描述】:我知道这可能看起来很愚蠢,但我一直在到处寻找并尝试使用正则表达式并徒劳... 查看详情

尝试在 C# 中使用正则表达式获取整个 <div>

】尝试在C#中使用正则表达式获取整个<div>【英文标题】:Tryingtogetawhole<div>withregexinc#【发布时间】:2013-05-0216:37:36【问题描述】:我正在尝试在c#中抓取整个div元素...我试过divclass="txt-block"\\s*(.+?)(\\r\\n?|\\n)\\s*"... 查看详情

django1.0和django2.0的基于正则表达式的url区别

django1.0django2.0 查看详情

django 1.7 如何将参数传递给函数正则表达式

】django1.7如何将参数传递给函数正则表达式【英文标题】:django1.7howtopassargumentstofunctionregularexpressions【发布时间】:2014-10-0922:24:28【问题描述】:我正在尝试将表的ID传递给我的函数,但我不确定发生了什么。如果我对ID号进行... 查看详情

在Django中使用继承模型获取相关对象的主键

】在Django中使用继承模型获取相关对象的主键【英文标题】:GettingtheprimarykeyofrelatedobjectwithinheritedmodelinDjango【发布时间】:2012-01-1509:25:45【问题描述】:我有以下型号:classA(TranslatableModel):translations=TranslatedFields(name=models.CharField... 查看详情

Django 使用查询集和正则表达式查找重复项

】Django使用查询集和正则表达式查找重复项【英文标题】:Djangofindduplicateswithquerysetandregex【发布时间】:2015-03-2018:13:07【问题描述】:在Django中,是否可以使用查询集和正则表达式查找重复项?Djangoselectonlyrowswithduplicatefieldvalues... 查看详情

如何使用 Django 中另一个模型的主键获取条目?

】如何使用Django中另一个模型的主键获取条目?【英文标题】:HowtogetentryusingprimarykeyfromanothermodelinDjango?【发布时间】:2021-04-3004:32:52【问题描述】:我有2个模型,“Listing”和“Watchlist”。Watchlist有一个引用列表的主键。对于... 查看详情

如何在我的 Django urls.py 中使用单个正则表达式捕获多个参数?

】如何在我的Djangourls.py中使用单个正则表达式捕获多个参数?【英文标题】:HowtocapturemultipleargumentsusingasingleRegExinmyDjangourls.py?【发布时间】:2011-04-1420:07:29【问题描述】:我有一个应用程序允许您通过3个字段过滤数据。我正在... 查看详情

使用正则表达式获取带边界的数据

】使用正则表达式获取带边界的数据【英文标题】:Getdatawithboundariesusingregex【发布时间】:2021-12-2810:29:08【问题描述】:我想使用正则表达式从这个函数中获取标签和数据,我尝试过使用这个:pattern=re.compile(r\'/blabels:],/b\')print(... 查看详情

如何在 django 查询中使用正则表达式

】如何在django查询中使用正则表达式【英文标题】:Howtouseregexindjangoquery【发布时间】:2013-04-2720:10:11【问题描述】:在数据库中,图像名称以以下格式保存。+------------+------------+------------+-----------+|adv_images|start_date|end_date|id|+---... 查看详情

在 Django 中使用 Python 正则表达式

】在Django中使用Python正则表达式【英文标题】:UsingPythonRegularExpressioninDjango【发布时间】:2010-12-0919:48:53【问题描述】:我有一个网址:http://www.example.com/org/companyA我希望能够使用正则表达式将CompanyA传递给视图。这就是我所拥... 查看详情