gpt4 book ai didi

python - Django:如何获取 url 路径?

转载 作者:太空宇宙 更新时间:2023-11-04 09:33:01 28 4
gpt4 key购买 nike

我读过一些关于 reverse 函数的内容,但我不明白。

我的两个网址正在调用同一个 View 。在这个 View 中,我需要根据 url 来决定上下文。

urls.py:

urlpatterns = [
path('view/', my_view),
path('edit/', my_view),
]

views.py:

def my_view(request):
#some code
if(my_url_path == 'view/'): #just taking a look
context = {
'task': 'view'
}
elif(my_url_path == 'edit/'): #can edit
context = {
'task': 'edit'
}

我没有为这些路径使用两个不同的 View ,因为它的代码非常广泛,我可以保存许多重复的行(DRY)。它们做的事情非常相似,我可以根据 View 发送的上下文调整模板中的这些小差异。

我怎样才能做我在 View 中显示的内容?谢谢!

最佳答案

最佳做法是将其分成两个不同的 View ,并将通用代码移到别处。

但是,如果您想要访问路径,您只需调用 request.path_info 即可,如文档中所述 here

或者,您可以在 url 上使用捕获组为了进一步简化,前提是 url 模式对于您的 urls.py 中的其他模式是唯一的。以下内容

urls.py:

path('<task>/', my_view, name='my_view'),

View .py

def my_view(request, task):
context = { 'task': task }

关于python - Django:如何获取 url 路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54945781/

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