gpt4 book ai didi

python - url 中的 id(数字) 路径

转载 作者:行者123 更新时间:2023-11-30 22:01:40 25 4
gpt4 key购买 nike

我是 Django 新手

在 urls.py 中,我这样设置路径。我尝试创建一个带有 url 的页面: localhost:8000/topics/1/

urlpatterns = [
path('topics/(?P<topic_id>\d+)/', views.topic, name='topic'),
]

在views.py中。代码是这样的:

def topic(request, topic_id):
"""Show a single topic and all its entries"""
topic = Topic.objects.get(id=topic_id)
entries = topic.entry_set.order_by('date_added')
context = {'topic': topic, "entries": entries}
return render(request, 'learning_logs/topic.html', context)

输入 localhost:8000/topics/1/时出现错误 404。

主题/(?P\d+)/[name='topic']

当前路径 topic/1/与其中任何一个都不匹配。

但正确的网址是:localhost:8000/topics/(%3FP1%5Cd+)/

url 中的路径是否有问题或者出现了什么问题?

最佳答案

试试这个

urlpatterns = [
path('topics/<topic_id>/', views.topic, name='topic'),
]

如果您需要一个整数,您可以将其指定为,

urlpatterns = [
path('topics/<int:topic_id>/', views.topic, name='topic'),
]

为什么topics/(?P<topic_id>\d+)/'不起作用?

实际上你正在混合使用。

如果您尝试在网址中提供包含正则表达式的表达式,请使用 re_path() .

所以你的模式将是:

from django.urls import re_path

urlpatterns = [
re_path('topics/(?P<topic_id>\d+)/', views.topic, name='topic'),
]

关于python - url 中的 id(数字) 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53983653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com