V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
rusteer
V2EX  ›  问与答

刚来新公司,他们居然说这个很简单?

  •  
  •   rusteer · 232 天前 · 5343 次点击
    这是一个创建于 232 天前的主题,其中的信息可能已经有所发展或是发生改变。

    某人要求用 python 实现动态生成一个包含 table 的 html ,他给的字典也是不固定的,table 还需要能够根据他的内容动态更改 table 的 style 样式 他说用 python 简单 replace 就可以了......

    30 条回复    2022-10-18 17:24:21 +08:00
    kop1989smurf
        1
    kop1989smurf  
       232 天前
    不懂 python 。

    手撕一个富文本字符串?
    从楼主的描述上看,确实没什么技术难度,只是随着 table 的复杂程度导致的工作量问题。

    楼主不妨说说具体的技术问题。
    MuscleOf2016
        2
    MuscleOf2016  
       232 天前
    换个说法,说不是很难,是不是好点。
    rationa1cuzz
        3
    rationa1cuzz  
       232 天前
    根据动态字典渲染 html 咯,jinja2 了解一下
    tulongtou
        4
    tulongtou  
       232 天前
    确实挺简单的
    helone
        5
    helone  
       232 天前
    。。。也有可能你描述的比实际的简单,但是你描述的确实不复杂,最起码对我来说我都懒得去跟产品掰扯,直接去做
    westoy
        6
    westoy  
       232 天前
    我怎么感觉就是一个模板的活儿啊
    aneureka
        7
    aneureka  
       232 天前 via iPhone
    定好模板,用 jinja2 动态渲染就行吧
    sutra
        8
    sutra  
       232 天前
    确实不是很难。
    Richardhtw
        9
    Richardhtw  
       232 天前
    。。。
    smilenceX
        10
    smilenceX  
       232 天前
    如果他说了用 python replace 就可以,那是不是可以表示,这个人是懂一些代码的
    不妨再多沟通一下,是不是你把需求想得复杂了
    rusteer
        11
    rusteer  
    OP
       232 天前
    @kop1989smurf 我不会 python ,没咋学过
    rusteer
        12
    rusteer  
    OP
       232 天前
    我看了下 jinjia2 可以搞定我想要的,其实就是动态生成一个 html 然后发邮件
    aceseo
        13
    aceseo  
       232 天前
    真相了,不会 Python , 从零学起肯定难呀
    fgwmlhdkkkw
        14
    fgwmlhdkkkw  
       232 天前
    什么语言都有模板引擎啊,他说 Python 就必须 Python 吗?
    ingnoscemihi
        15
    ingnoscemihi  
       232 天前
    不是挺简单的嘛。。。。
    leavic
        16
    leavic  
       231 天前
    我感觉是不太难啊
    jaredyam
        17
    jaredyam  
       231 天前
    看起来确实就是写一个 HTML 模板和几行 Python 的事。
    v2eb
        18
    v2eb  
       231 天前 via Android   ❤️ 1
    我记得刚来公司那会接的第一个需求, 是要求做个照片墙的功能。没有设计稿, 照片数量和大小都未知🙈。幸亏项目黄了
    Tink
        19
    Tink  
       231 天前 via Android
    只能说很麻烦
    plodderales0o
        20
    plodderales0o  
       231 天前
    模版引擎都不需要,直接动态生成 table 标签,html 其他部分写死即可。
    rusteer
        21
    rusteer  
    OP
       231 天前
    @plodderales0o 还需要根据数据进行列的合并与拆分,同时改变 style 样式怎么做?
    rusteer
        22
    rusteer  
    OP
       231 天前
    @jaredyam 麻烦的是行列不固定,还有进行合并与拆分
    rusteer
        23
    rusteer  
    OP
       231 天前
    @fgwmlhdkkkw 网络受限,很多东西都没有,python 都是我需要手动下载 whl ,内网拦了的 私有库又没有
    maxbon
        24
    maxbon  
       231 天前
    我一运维都觉得确实挺简单的
    s0ok
        25
    s0ok  
       231 天前
    确实不难啊,先考虑考虑是不是自己太菜了
    idblife
        26
    idblife  
       231 天前 via iPhone
    非常简单啊
    三五分钟的活
    danbai
        27
    danbai  
       231 天前
    第一个需求,word 转 pdf
    rusteer
        28
    rusteer  
    OP
       231 天前
    @s0ok 经过 V 友们的提醒(吐槽,我知道怎么搞了) 我被你的头像吸引了
    Pony69
        29
    Pony69  
       231 天前
    说得挺简单
    rusteer
        30
    rusteer  
    OP
       226 天前
    尝试了下 因为 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 %}
    ```
    关于   ·   帮助文档   ·   博客   ·   nftychat   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4751 人在线   最高记录 5634   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 70ms · UTC 09:23 · PVG 17:23 · LAX 02:23 · JFK 05:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.