python - 用 Django 调用 python 函数
问题描述
我最近开始学习如何使用 Django,我想知道您是否可以在 HTML 中创建一个可以直接调用 python 函数而不更改 URL 的按钮。有人告诉我用 JS 可以做到这一点,但我想知道你是否可以在 Python 中做到这一点。
感谢您花时间阅读本文!
解决方案
如果您还没有准备好深入研究 javascript,一个潜在的选择是查看HTMX。
您可以使用所需的任何 python 功能创建一个 django 视图,然后使用 HTMX 对其执行 get 或 post 调用。在这里,我只是返回一大块将插入到dataLocation
div 中的 html,但您可以从您的视图中调用任何可能使用 python 的内容并返回有用的 html。
索引.html
<button hx-get="/alert_message/" hx-target="#dataLocation" hx-swap="innerHTML">
Click Me
</button>
<div id="dataLocation"></div>
视图.py
from django.http import HttpResponse
def alert_message(request):
return HttpResponse(
(
"<div class='alert alert-warning'>"
" <strong>Warning!</strong> Some important message."
"</div>"
),
status=200,
content_type="text/html",
)
网址.py
urlpatterns = [
path('alert_message/', views.alert_message, name='alert_message'),
]
推荐阅读
- email - 在 Azure 逻辑应用中使用二进制附件发送电子邮件
- jquery - Spectre CSS - 根据 id 值打开模式
- ruby-on-rails - 使用自定义类型和属性 API 时出现“TypeError: can't quote”
- oracle - 在 Oracle 中自定义过滤和应用 Char 索引
- angular - 使用 ngFor 更改第一个选择的角度选择会影响第二个选择
- angular - Angular 5 Validators.required 仅在特定条件下
- css - 如何在CSS中围绕Png图像本身创建悬停
- clojure - Clojure 中的简单猜谜游戏无法正常工作
- java - java spring 中使用 AggregationOperation 的 Mongodb 内部连接:错误 [需要'cursor' 选项,但带有解释参数的聚合除外]
- python - pytest 应该运行在 test_module_A 的 test_func 中导入的 module_B