Django项目中渲染Html 表格 模板
由于需要在dajngo中生成一个html的报告,之前准备用html-table这个库来自动生成,但是生成的html格式不太可控,于是还是自己写一个html吧,然后通过网上查资料可以通过jinjia2来渲染前端页面。
项目结构

resources -- 项目根目录下的包
templates -- 存放html模板的目录
html.py -- 渲染html文件的模板
html模板
通过bootstrap提供的css进行页面渲染
demo.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Bootstrap 实例 - 边框表格</title>
<link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
<style type="text/css">
.table {
width: 50%;
max-width: 50%;
margin-bottom: 20px;
margin-left: 20px;
}
.p {
font-weight: bolder;
margin-left: 20px;
}
.h1 {
text-align: center;
margin-bottom: 40px;
}
.h4 {
font-weight: bolder;
margin-bottom: 20px;
}
</style>
<script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/js/bootstrap.min.js">
</script>
</head>
<body>
<div class="panel panel-default">
<div class="panel-body">
<h1 class="h1">test</h1>
<h4 class="h4">test </h4>
<h4 class="h4">test </h4>
<h4 class="h4">test </h4>
<h4 class="h4">test </h4>
<h4 class="h4" style="margin-bottom: 50px">test </h4>
<p class="p">xxxxx</p>
<table class="table table-bordered">
<thead>
<tr>
<th class="success">序号</th>
<th class="success">a</th>
<th class="success">b</th>
<th class="success">c</th>
<th class="success">d</th>
<th class="success">e</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<!-- 这个地方定义的变量后面通过jinjia2进行渲染 -->
<td>{{ code }}</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>2</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>3</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</div>
</div>
</body>
</html>
表格效果图

html.py
import datetime
from jinja2 import Environment, PackageLoader
class BuildHtml:
@staticmethod
def generate_html():
file_name = datetime.datetime.now().strftime("%Y%m%d%H%M") + ".html"
# resources为加载包的名称,templates为存放html模板的目录
env = Environment(loader=PackageLoader('resources', 'templates'))
template = env.get_template('demo.html')
with open(file_name, 'w+', encoding="utf-8") as file:
html_content = template.render(code="123")
file.write(html_content)
return file_name

浙公网安备 33010602011771号