某人要求用 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 DonaidTrump 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 定好模板,用 jinja2 动态渲染就行吧 |
![]() | 8 sutra 2022-10-13 13:28:16 +08:00 确实不是很难。 |
9 selfi 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 ![]() 我记得刚来公司那会接的第一个需求, 是要求做个照片墙的功能。没有设计稿, 照片数量和大小都未知。幸亏项目黄了 |
![]() | 19 Tink PRO 只能说很麻烦 |
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 PRO 第一个需求,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 %} ``` |