调用辅助函数并在django上创建进度条

时间:2014-02-05 14:58:47

标签: django html5 progress-bar meter

我想为民意调查制作进度条。我使用django 1.4.8进行实现。进度条应显示已经投票的人的重生。还有一个辅助函数,它返回投票的用户总数。

首先我编辑模板和css以显示条形图。之后,我尝试使用jquery实际行为。但我迷路了。我在互联网上搜索,但我可以清楚地理解。我不确定哪种方法是正确的。我不想使用任何其他外部库。

那么,问题是如何调用帮助功能以及我将使用该值在进度条中显示适当的百分比到模板中?

2 个答案:

答案 0 :(得分:1)

您需要考虑Web浏览器和服务器(Django)的通信方式。

浏览器向服务器上的url发出“get”请求。在Django中,您有一个 urls.py 文件,该文件确定哪个视图将处理对该URL的请求。例如,将有一个视图呈现包含投票表单的HTML代码的模板。

当用户提交轮询时,浏览器发出“发布”请求,将轮询的表单数据发送到服务器 - 发送到特定的Django视图,该视图处理将轮询投票保存到数据库。通常在Django中,我们对表单的get和post使用相同的view函数 - 有关更多详细信息,请参阅此答案:https://stackoverflow.com/a/21114637/202168

目前尚不清楚您是想最初显示进度条,还是仅在他们提交投票后才显示进度条。无论哪种方式,您只需要计算Django视图中百分比和用户总和的相关值,并将这些值传递给模板,这会将HTML发送回浏览器。

如果您使用HTML5 progress bar,则甚至不需要jQuery。除非您希望用户看到进度条更改为其他用户提交他们的投票(更复杂),否则您也不需要任何'ajax'。

我建议你先从Django教程开始:
https://docs.djangoproject.com/en/dev/intro/tutorial01/

答案 1 :(得分:0)

所以准确地说是来自jingo的helper.py导入寄存器。这意味着您可以立即将该功能调用到模板中。此外,我用而不是为了我的目的。

helper.py

from jingo import register

@register.filter
def get_value():
     return value

进入模板

<meter min="0" value="{{ <app_name>|get_value }} max="1"></meter>