将 pandas 数据框传递给 Django 模板
Posted
技术标签:
【中文标题】将 pandas 数据框传递给 Django 模板【英文标题】:Pass a pandas dataframe to Django template 【发布时间】:2015-10-27 09:26:48 【问题描述】:我正在使用 Django、bootstrap3 和 Dajaxice 创建一个网站。我想将一个 pandas 数据框从我的 views.py 传递到我的一个模板,但无法让它工作。我需要它作为数据框而不是 html,因此不能使用 .to_html()
。
html:
<div class="text-center">
<button class="btn btn-primary" type="button" name="UpdateDB" onclick="submitverify(file_dfs)">Submit Files % bootstrap_icon "chevron-right" %</button>
</div>
当我尝试传递file_dfs
时,我在file_dfs
上收到Uncaught SyntaxError: Unexpected token ILLEGAL
错误。当我打开 chromes 开发者工具时,它看起来像这样:
<button class="btn btn-primary" type="button" name="UpdateDB" onclick="submitverify('_COMM_': [], '_CMD_': [ WINDOW_START ...])"
谁能帮我解决这个问题?
谢谢!
【问题讨论】:
你能提供更多关于你想要做什么的信息吗?您是否尝试将数据框传递给数据的其他用户? @KevinMcKenzie 是的,我需要通过我的 html 模板调用的另一个函数中的数据框。 函数是python函数还是django函数?我不确定 django 解析器是否知道如何处理数据帧。你可以看看github.com/chrisdev/django-pandas。 @KevinMcKenzie 该函数是一个包含 dajax 调用的 javascript 函数。 dajax 是使用数据框的,但 javascript 调用发生在我的 html 模板中,这就是为什么我需要能够将数据框从我的 views.py 传递到我的模板中。我知道不是 dajax 导致了问题,因为即使 dajax 被注释掉,我也会遇到同样的错误。看起来模板在看到数据名时会感到困惑。 自动转义是否开启?看来 Django 默认情况下已将其打开。 (见code.djangoproject.com/wiki/AutoEscaping)。如果它打开了,我怀疑你需要为数据框关闭它。 【参考方案1】:是否开启了自动转义?似乎 Django 默认开启了它(参见code.djangoproject.com/wiki/AutoEscaping)。如果开启,则需要为数据框关闭。
【讨论】:
以上是关于将 pandas 数据框传递给 Django 模板的主要内容,如果未能解决你的问题,请参考以下文章