【问题标题】:Make django code run after page load让 django 代码在页面加载后运行
【发布时间】:2017-06-23 13:37:14
【问题描述】:

因此,我希望网页中的 python 代码每秒运行一次,并在数据库已更改时更新页面,但由于 django 的工作方式,它仅在页面加载时执行。

function refresh(){
        //Clear info boxes
        {% for TrackedObject in allTrackedObjects %}

          //Add info to boxes

        {% endfor %}

    }

window.setInterval(refresh,1000);

有没有办法让 setInterval 的调用也再次运行 python 代码?

【问题讨论】:

  • 你误解了 Django 和 Django 模板语言的工作原理……这也不是 Python。
  • 但是有没有办法用 django 实现这种东西?
  • 没关系,设置一个 API 并让 django 初始化它,但通过 API 调用更新。
  • 您可能应该阅读 HTTP 的基础知识。您的浏览器/javascript 可以与 Django 进行的唯一交互是发出请求并接收响应,仅此而已。你能每秒发出一个请求吗?当然可以,但是您需要设置 Django 来处理该特定请求并返回适当的响应,并且您需要检查更改并可能更新 javascript 代码中的 HTML。

标签: javascript python html django web


【解决方案1】:

完成它的一种方法是在页面上使用 javascript 来重新加载整个页面或要更改的页面的一部分。对于页面代码选项的一部分,您可以从 JS 调用应用程序中的 django url 并返回 html 以替换您用于替换现有页面中数据的部分 DOM 或 JSON。

【讨论】:

  • 是的,我确实尝试了刷新路线,但它导致了可用性问题,我认为设置 API 是我的方法,将你的答案标记为正确,因为它可以工作,你也可以免费上网点!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-05
相关资源
最近更新 更多