Python中如何使用PrettyTable将表格输出到Django网页上?

查了半天,还是不会。。


Python中如何使用PrettyTable将表格输出到Django网页上?
6 回复

搜 django html 表格,忘掉 prettytable


要在Django网页上展示PrettyTable,核心是将PrettyTable对象转换为HTML字符串。PrettyTable本身不直接支持Django,但它的get_html_string()方法正好能生成HTML表格代码。

下面是一个完整的视图函数示例:

# views.py
from django.shortcuts import render
from prettytable import PrettyTable

def display_table(request):
    # 创建PrettyTable实例并添加数据
    table = PrettyTable()
    table.field_names = ["姓名", "年龄", "城市"]
    table.add_row(["张三", 25, "北京"])
    table.add_row(["李四", 30, "上海"])
    table.add_row(["王五", 28, "广州"])
    
    # 获取HTML字符串
    html_table = table.get_html_string()
    
    # 传递给模板
    return render(request, 'table_display.html', {'html_table': html_table})

对应的模板文件(table_display.html)可以这样写:

<!DOCTYPE html>
<html>
<head>
    <title>表格展示</title>
</head>
<body>
    <h1>用户信息表</h1>
    <!-- 使用safe过滤器防止HTML被转义 -->
    {{ html_table|safe }}
</body>
</html>

关键点

  1. 在视图中用get_html_string()方法获取HTML代码
  2. 模板中必须用|safe过滤器,否则Django会把HTML标签当作普通文本显示
  3. 可以通过table.set_style()等方法调整表格样式

一句话建议:用get_html_string()生成HTML,模板里记得加|safe过滤器。

content = PrettyTable.whatever()
return HttpResponse(’<pre>{}</pre>’.format(content))

不过需求很奇葩哈, 既然是 html 为啥不直接用 table

PrettyTable.whatever() 这个是什么意思

我怎么通过 django 在网页调用我这个 python 脚本的输出,我看好像只有通过 view 写响应函数,难道把所有程序移到 view 里面?

PrettyTable.whatever() 这个是怎么用的,前面那个 PrettyTable 是定义的变量吗?为什么我用了这个网页显示 whtever 这个值是错的
Exception Type: AttributeError
Exception Value: whatever

回到顶部