某人要求用 python 实现动态生成一个包含 table 的 html ,他给的字典也是不固定的,table 还需要能够根据他的内容动态更改 table 的 style 样式 他说用 python 简单 replace 就可以了......
1
kop1989smurf 2022-10-13 13:19:20 +08:00
不懂 python 。
手撕一个富文本字符串? 从楼主的描述上看,确实没什么技术难度,只是随着 table 的复杂程度导致的工作量问题。 楼主不妨说说具体的技术问题。 |
2
MuscleOf2016 2022-10-13 13:20:13 +08:00
换个说法,说不是很难,是不是好点。
|
3
rationa1cuzz 2022-10-13 13:20:17 +08:00
根据动态字典渲染 html 咯,jinja2 了解一下
|
4
tulongtou 2022-10-13 13:20:54 +08:00
确实挺简单的
|
5
helone 2022-10-13 13:22:22 +08:00
。。。也有可能你描述的比实际的简单,但是你描述的确实不复杂,最起码对我来说我都懒得去跟产品掰扯,直接去做
|
6
westoy 2022-10-13 13:27:26 +08:00
我怎么感觉就是一个模板的活儿啊
|
7
aneureka 2022-10-13 13:28:04 +08:00 via iPhone
定好模板,用 jinja2 动态渲染就行吧
|
8
sutra 2022-10-13 13:28:16 +08:00
确实不是很难。
|
9
Richardhtw 2022-10-13 13:28:41 +08:00
。。。
|
10
smilenceX 2022-10-13 13:31:13 +08:00
如果他说了用 python replace 就可以,那是不是可以表示,这个人是懂一些代码的
不妨再多沟通一下,是不是你把需求想得复杂了 |
11
rusteer OP @kop1989smurf 我不会 python ,没咋学过
|
12
rusteer OP 我看了下 jinjia2 可以搞定我想要的,其实就是动态生成一个 html 然后发邮件
|
13
aceseo 2022-10-13 15:31:52 +08:00
真相了,不会 Python , 从零学起肯定难呀
|
14
fgwmlhdkkkw 2022-10-13 15:44:50 +08:00
什么语言都有模板引擎啊,他说 Python 就必须 Python 吗?
|
15
ingnoscemihi 2022-10-13 17:18:13 +08:00
不是挺简单的嘛。。。。
|
16
leavic 2022-10-13 18:25:30 +08:00
我感觉是不太难啊
|
17
jaredyam 2022-10-13 22:01:56 +08:00
看起来确实就是写一个 HTML 模板和几行 Python 的事。
|
18
v2eb 2022-10-13 22:21:39 +08:00 via Android 1
我记得刚来公司那会接的第一个需求, 是要求做个照片墙的功能。没有设计稿, 照片数量和大小都未知🙈。幸亏项目黄了
|
19
Tink 2022-10-13 22:27:47 +08:00 via Android
只能说很麻烦
|
20
plodderales0o 2022-10-14 00:03:48 +08:00
模版引擎都不需要,直接动态生成 table 标签,html 其他部分写死即可。
|
21
rusteer OP @plodderales0o 还需要根据数据进行列的合并与拆分,同时改变 style 样式怎么做?
|
23
rusteer OP @fgwmlhdkkkw 网络受限,很多东西都没有,python 都是我需要手动下载 whl ,内网拦了的 私有库又没有
|
24
maxbon 2022-10-14 09:23:49 +08:00
我一运维都觉得确实挺简单的
|
25
s0ok 2022-10-14 09:31:49 +08:00
确实不难啊,先考虑考虑是不是自己太菜了
|
26
idblife 2022-10-14 09:42:25 +08:00 via iPhone
非常简单啊
三五分钟的活 |
27
danbai 2022-10-14 10:08:23 +08:00
第一个需求,word 转 pdf
|
29
Pony69 2022-10-14 17:21:01 +08:00
说得挺简单
|
30
rusteer OP 尝试了下 因为 key 与 value 都是不固定的,嵌套层级过多了以后 jinja 无法通过循环进行 items()解析,同时因为 json 是 dict 没办法通过下标访问,同时还需要进行行与列的动态合并,先准备用个 jinja 做一个静态的模板。下面是一个比较完整的 jinja template 感觉像个屎山
``` {% extends "base.html" %} {% block content %} {% for key,value in datas['stage'].items() %} <tr height="50"> <td >{{ key}}</td> {% for k,v in value.items() %} <td>{{k}}</td> {% if k|capitalize|safe =='Report'%} <td><a href="{{v}}">FilePath</a></td> {% elif k|capitalize|safe !='Detail' %} <td colspan="6">{{v}}</td> {% elif k|capitalize|safe =='Detail' and v!='none' %} {% for v1 in v %} <td> {{v1}} </td> {% endfor %} {% endif %} {% endfor %} </tr> {% endfor %} {% endblock %} ``` |