Django中使用df.to_html无法渲染pandas dataframe问题求助
问题修复方案
你当前的代码存在两处需要调整的问题:
- 视图函数未将生成的表格HTML内容传入模板上下文,模板无法读取
df变量 - Django模板默认会转义HTML内容,直接输出会显示原始标签而非渲染为可视化表格
修改views.py
调整视图逻辑,将df变量传入渲染上下文,可选提前标记为安全字符串:
from django.shortcuts import render import pandas as pd from django.utils.safestring import mark_safe def index(request): df = pd.DataFrame( {'Nome': ['Beatriz', 'Ana', 'Flávia', 'Bianca'], 'Idade': [23, 24, 24, 19], 'Profissao': ['Analista de Sistemas', 'Advogada', 'Promotora', 'Jornalista'], 'Renda_mensal': [5000, 8000, 15000, 4500] }) df_html = df.to_html() # 标记为安全HTML,避免模板自动转义 safe_df = mark_safe(df_html) # 把变量传入模板上下文字典 return render(request, 'index.html', {'df': safe_df})
修改index.html
如果没有在视图侧做安全标记,需要在模板变量后添加safe过滤器关闭转义:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Home</title> </head> <body> <h1>Em construção</h1> <!-- 若视图已标记安全,可省略|safe后缀 --> {{ df|safe }} </body> </html>
两种转义处理方式二选一即可,不需要同时配置。
内容的提问来源于stack exchange,提问作者BeatrizGomes
相关产品推荐
相关产品推荐

