【问题标题】:How To use multiple url with the same template file in django.?如何在 django 中使用具有相同模板文件的多个 url。?
【发布时间】:2023-04-04 08:36:01
【问题描述】:

URLS.PY

url(r'^shop.html$', views.alldress, name='alldress'),
url(r'^shop.html$', views.cart ,name='cart'),
url(r'^shop.html$', views.cartdata, name='cartdata'),

我想同时使用三个进程,那么如何在 django 中使用多个 url 和同一个模板文件?

【问题讨论】:

  • 同一个模板文件?您可能指的是相同的 URL,这没有任何意义。如果用户访问shop.html,应该触发什么视图?如果这三个都应该启动,那么应该响应哪个视图?
  • 检查这是否有帮助 - stackoverflow.com/questions/26571759/…
  • 这个想法是你有一个 URL 视图,它返回一个响应,它当然可以调用实用程序函数(甚至其他视图),然后“合并这些”结果。我认为在这里您可能希望生成一个页面,例如稍后加载 AJAX 请求的页面'cartdata'
  • 感谢您的回答,但我只有一个 html 文件名为 shop.html 我想在单个 html 文件中使用三种不同类型的视图函数

标签: python django url


【解决方案1】:

在 Django 中,urls.py 文件旨在将 URL 模式与视图函数连接起来。如果您有多个 URL 模式打算做同样的事情,只需将它们全部连接到同一个视图函数,如下所示:

url(r'^shop/$', views.shop, name='shop'),
url(r'^cart/$', views.shop, name='cart'),
url(r'^cartdata/$', views.shop, name='cartdata')

如果您希望您的 URL 模式做不同的事情但仍呈现相同的模板,您可以在每个 views.py 函数中呈现该模板。

# urls.py
url(r'^shop/$', views.shop, name='shop'),
url(r'^cart/$', views.cart, name='cart'),
url(r'^cartdata/$', views.cartdata, name='cartdata')

# views.py
def shop(request):
    context = {}
    ...
    return render(request, 'shop.html', context)

def cart(request):
    context = {}
    ...
    return render(request, 'shop.html', context)

def cartdata(request):
    context = {}
    ...
    return render(request, 'shop.html', context)

在本例中,三个views.py 函数中的每一个都执行不同的操作,但它们都呈现相同的HTML 文件shop.html

【讨论】:

  • 感谢您的回答,但我只有一个 html 文件名是 shop.html 我想在单个 html 文件中使用三种不同类型的视图函数..
  • 你可以!检查我编辑的答案以获得更充实的示例。那是你要找的吗?您可以让任意数量的 Django 视图返回相同的模板。
猜你喜欢
  • 2016-04-26
  • 1970-01-01
  • 2021-01-29
  • 1970-01-01
  • 1970-01-01
  • 2012-10-07
  • 1970-01-01
  • 2022-06-10
  • 2012-07-26
相关资源
最近更新 更多