【问题标题】:Django: Call Python Function on Button Click and Display StringDjango:在按钮单击和显示字符串时调用 Python 函数
【发布时间】:2020-08-29 06:19:28
【问题描述】:

我在网上找到了一些资源,但没有一个对我有用。这是我目前拥有的:

在views.py中:

def button(request):
    return render(request, 'home.html')

def display_text(request):
    return HttpResponse('TESTING', status=200)

在 urls.py 中:

urlpatterns = [
    url(r'^$', views.button),
    url(r'^display_text', views.display_text, name='script'),
]

在 home.html 中:

      <div class="row">
        <input type="text" class="form-control js-text" id="input-box" placeholder="Type something to begin..."/>
        <div class="col-md-12" style="text-align:center;">
            <button onclick="location.href='{% url 'script' %}'"></button> <hr>
        </div>
      </div>

现在发生的是它在新网页上显示字符串。我想要做的是用我的 Python 函数返回的字符串填充我的文本框,并将其显示在当前页面上。我该怎么做?谢谢!

【问题讨论】:

    标签: javascript python django django-views django-templates


    【解决方案1】:

    最简单的方法是使用 Django 提供的渲染函数。此函数结合了上下文和模板并呈现 HttpResponse。您可以将display_text 函数更改为以下内容:

    def display_text(request):
        return render(request, 'home.html', {'string': 'TESTING'})
        #Im assuming home.html is the the page you want to render
    

    现在您可以使用 Django 模板来显示通过上下文发送的数据,如下所示:

    <div>
        <p>{{string}}</p>
    </div>
    

    【讨论】:

    • 当我这样做时,我会被重定向到另一个页面,最后是'/display_text'。我怎样才能做到这一点,这样我就不会被重定向到该页面,也不会刷新我的页面。
    • 好的,所以如果你不希望你的页面重新加载,那是一个完全不同的话题。您应该使用的是 Ajax。 Ajax 用于创建异步 Web 应用程序,换句话说,它可以发出请求并接收响应,而无需重新加载您的网页。我建议从 link 开始,它提供了一个很棒的例子和简单的 Ajax 与 Django 的例子。
    猜你喜欢
    • 1970-01-01
    • 2016-09-11
    • 2020-08-29
    • 2013-02-26
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 2018-03-03
    • 2015-07-01
    相关资源
    最近更新 更多