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>
关键点:
- 在视图中用
get_html_string()方法获取HTML代码 - 模板中必须用
|safe过滤器,否则Django会把HTML标签当作普通文本显示 - 可以通过
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

