python - 有没有办法在作为表格的模板变量内执行 html?

标签 python html css django forms

我正在使用 Django 创建一个网站,我使用了一个 pandas 数据框并将其存储为模板变量并将其传递给渲染请求。我想制作一些列形式元素,但一直没有成功。

我已经尝试将该函数应用于 pandas 数据框,以便将正确的 HTML 添加到列中的每个元素。但是,HTML 本身显示在实际站点上。

这是我的python代码:

def optimizer(request):
    df = Optimizer.get_daily_roster('E:\website\optimizer\Predictions.csv')
    df = df.drop(columns=['Name + ID', 'Game Info', 'Unnamed: 0', 'Unnamed: 0.1', 'name'])
    df = df.rename(columns={'TeamAbbrev': 'Team', 'AvgPointsPerGame': 'Predicted FP'})
    df['Predicted FP'] = df['Predicted FP'].apply(lambda x: round(float(x), 2))
    df['Predicted FP'] = df['Predicted FP'].apply(lambda x: "<input type='text' value=" + str(x) + ">")
    df['Min Exposure'] = 0
    df['Max Exposure'] = 1
    # cols_to_values = df.to_dict(orient='list')
    # cols_to_values = {x.translate({32: None}): y
    #                 for x, y in cols_to_values.items()}
    html_table = df.to_html(index=False, justify='left',
                            classes=[
                                'table table-bordered table-striped table-hover table-responsive table-sm, container-fluid'])
    return render(request, 'optimizer/optimizer.html', {'player_table': html_table})

这是我的 HTML:

{% extends "optimizer/base.html" %}
{% block content %}
<h1>Optimizer</h1>
<form method="post">
    <input type="submit" value="Generate Lineups">
    <div class="table-responsive">
        {{ player_table |safe }}
    </div>
</form>
{% endblock content %}

我正在获取表示整个 HTML 字符串的表数据字段。例如,有人说 "<input type='text' value=55.95>" .它应该只是说 55.95 并且是一个可编辑的表单字段。

最佳答案

默认情况下,pandas.DataFrame.to_html() 会转义不安全的字符。

您可以通过传递 escape=False 来更改该行为(参见 docs )。

请注意,这会使您的应用程序可能容易受到跨站点脚本攻击,并且您将无法从 Django 的表单验证工具中受益

关于python - 有没有办法在作为表格的模板变量内执行 html?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58605563/

相关文章:

python - 如何在Python中创建具有两列作为元组或Pandas数据框的单个变量?

IE 中的 Python webdriver 为所有 find_elements 返回 None

JavaScript 媒体查询

html - 使用HandleFunc提供通过模板链接的CSS文件

css - 什么是好的网络开发字体?

python - 为什么我无法在 pandas 中获得正确的掩码列

python - 有没有办法限制特定函数调用的函数?

javascript - 如何使用 JavaScript 将选择范围扩展到字边界,仅一次?

html - 如何使方形图像适合整个屏幕并避免滚动?

css - 如何让 CSS 网格 block 具有背景色?