【问题标题】:Python: How to call a function with django?Python:如何用 django 调用函数?
【发布时间】:2022-01-11 15:59:03
【问题描述】:

我是 Django 的新手,并且已经被这个问题困扰了一段时间,由于某种原因,他们实际上并没有在我能找到的任何教程中明确地教授它。

所以我想要的是创建一个简单的按钮,我 Django 调用一个简单的 python 函数,将“hello”打印到终端?我不想改变视图或任何东西,只是为了调用函数

编辑:

这是我目前所拥有的,左侧是我的 view.py,右侧是 html 文件

【问题讨论】:

  • 您可以通过视图来做到这一点:浏览器可以发出 HTTP 请求,然后由视图处理。这是与网络服务器通信的唯一方式(除了套接字等,但在这里不是很相关)。
  • 好的,我明白了。但我将如何去创造呢?我更新了我的帖子@WillemVanOnsem

标签: python django function web terminal


【解决方案1】:

这是您要查找的内容:

<form action="#" method="get">
   <button type="submit" class="btn btn-primary" value="" name="mybtn">Download</button>
</form>

def index(request):
    print('***Loaded***')
    if (request.GET.get('mybtn')):
        print('**Just Clicked on BTN')

【讨论】:

  • 我尝试运行它,但代码中的最后一行从未运行。我必须将它添加到我的索引函数中还是可以创建另一个函数?
  • 是的,你必须将“IF”部分添加到你的索引函数中。
  • 我有答案中显示的确切代码,然后我添加了return render(request, "main/index.html")
  • 启动模板时会触发该功能吗?当您按下按钮时,您会收到什么请求?
  • 我想我发现了错误。由于某种原因,如果按钮的值和名称相同,您的代码就可以工作。它们真的必须相同吗?
【解决方案2】:

在 Django 中的工作流程不同,它遵循模型视图模板 (MVT),因此您必须在 view.py 中定义一个函数,其中您将提及您的 HTML 模板文件名,然后您必须将该函数与您的 Web 应用程序绑定使用 urls.py 文件的 URL,因此当该特定 URL 命中时,它会调用视图函数处理您的逻辑并在 HTML 文件中返回数据。

view.py

def welcome(request):
    # here 'welcome.html' is your template it should be in templates directory 
    return render(request,'welcome.html')

urls.py

from myapp import views
urlpatterns = [
  path('admin/', admin.site.urls),
  path('home', views.welcome, name = 'welcome'),
]

我建议你阅读它的官方文档,或者你可以通过这个django crash course

【讨论】:

  • 感谢您的回复,我得到了这么多,我只是不确定如何将按钮连接到功能。我尝试在提供的其他答案中添加else-part。并且由于某种原因,只有 else 语句运行,if 语句的另一部分永远不会为真
猜你喜欢
  • 1970-01-01
  • 2018-12-08
  • 1970-01-01
  • 1970-01-01
  • 2016-11-01
  • 1970-01-01
  • 2020-12-21
  • 2021-10-21
  • 2011-01-08
相关资源
最近更新 更多