gpt4 book ai didi

python - 从 HTML 到 Python 文件调用函数

转载 作者:行者123 更新时间:2023-12-01 01:37:38 25 4
gpt4 key购买 nike

我有一个index.html页面,其中包含“卡片”列表,其中每张卡片都有一个“单击选择”链接。

当用户单击此链接时,我想调用 python 中的函数来选择此项,请参阅:

def selectItem(request, item):
#so something with this item

所以,在我的 html 页面中:

<div class="card-action">
<a href="{{ selectItem(myitem) }}">Selecionar</a>
</div>

这行不通。正确的做法是什么?

最佳答案

你不能调用这样的函数。浏览器通过 HTTP 请求请求数据,服务器通过 (HTTP) 响应进行应答。此类请求有一个 URL,Django 可以使用 URL 将请求路由到将计算响应的正确 View 。

因此,我们需要构造一个可以调用的 View 。您的电话已经很接近了:

# app/views.py

from django.http import HttpResponse

def select_item(request, <b>item_id</b>):
# so something with this item_id
# ...
return HttpResponse()

由于大多数对象都是不可序列化的(而且通常您也不希望这样,因为它会向用户公开大量(可能敏感的)数据,因此我们需要使用 id (例如,存储在数据库中的标识符对应于对象)。

响应包含响应中的数据。通常,这是由浏览器呈现的 HTML 代码。

现在在 urls.py 中,我们可以指定 url 的样子,例如:

# app/urls.py

from django.urls import path
from app.views import select_item

urlpatterns = [
path('select_item/<int:item_id>/', select_item, name='select_item_view'),
# ...
]

urlpatterns 需要包含在根 urlpatterns 中(在项目根目录中)。

现在在 HTML 模板中,我们可以生成与此 View 匹配的 URL,类似于:

<div class="card-action">
<a href="<b>{% url 'select_item_view' item_id=myitem.id %}</b>">Selecionar</a>
</div>

然后,Django 将确保 href 指向一个引用带有正确参数的 select_item View 的 URL。

关于python - 从 HTML 到 Python 文件调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52245189/

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