django 模板循环和条件语句造成前端大量的空白行,怎么解决? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Hopetree
V2EX    Django

django 模板循环和条件语句造成前端大量的空白行,怎么解决?

  •  
  •   Hopetree
    Hopetree 2018-04-17 11:15:10 +08:00 4772 次点击
    这是一个创建于 2802 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,用过 django 的应该都知道,是用来一些条件语句之后前端会有大片的空白行出现,请问怎么样可以消除这些空白行呢?

    我看 flask 使用的 jinja 模板是可以在循环里面加一个-来消除的,难道 django 一定要去更换模板才能消除吗?

    19 条回复    2018-04-17 15:40:31 +08:00
    SingeeKing
        1
    SingeeKing  
    PRO
       2018-04-17 11:28:48 +08:00 via iPhone
    django-htmlmin ?
    edsion996
        2
    edsion996  
       2018-04-17 11:33:53 +08:00
    用 spaceless 也不行吗
    misaka19000
        3
    misaka19000  
       2018-04-17 11:38:28 +08:00
    去不掉就去不去掉啊。。。又没有人在乎源码好不好看
    PressOne
        4
    PressOne  
       2018-04-17 11:46:46 +08:00 via Android
    jinja 有这个 bug 吗?怎么没发现过,楼主截个图看下,是不是真是 jinja 的锅?
    wd
        5
    wd  
       2018-04-17 11:48:29 +08:00 via iPhone
    @PressOne 楼主说的是 drango drango 用的不是 jinja
    turan12
        6
    turan12  
       2018-04-17 11:50:24 +08:00
    如果是为了减少数据流量的话,试试启用 gzip。
    SingeeKing
        8
    SingeeKing  
    PRO
       2018-04-17 12:46:43 +08:00
    @Wichna #7 Django 用的不是 Jinjia。。
    so1n
        9
    so1n  
       2018-04-17 12:46:52 +08:00
    我记得 django 的文档 模板-设计 api 里面有 可以找一找
    Hopetree
        10
    Hopetree  
    OP
       2018-04-17 12:50:56 +08:00
    @PressOne 不是 jinja 有 bug,jinja 可以去掉空白,django 默认不是 jinja
    C0VN
        11
    C0VN  
       2018-04-17 12:54:04 +08:00
    django 自带模版好像没有什么办法
    自己写一个? https://djangosnippets.org/snippets/569/
    guoqiao
        12
    guoqiao  
       2018-04-17 13:04:13 +08:00
    条件语句不要换行就好了,例如,本来这样:

    ```
    {{ if user.is_authenticated }}
    Hi, {{user.username}}!
    {{ endif }}
    ```
    改成:
    ```
    {{ if user.is_authenticated }}Hi, {{user.username}}!{{ endif }}
    ```
    Hopetree
        13
    Hopetree  
    OP
       2018-04-17 13:09:32 +08:00
    @Wichna 我知道 jinja 可以,我问题里面都说了 flask 就是用的 jinja 可以去掉空白,就是加-,django 的模板不是 jinja,这个方法行不通,我试过了
    Hopetree
        14
    Hopetree  
    OP
       2018-04-17 13:17:49 +08:00
    @zjb861107 这个当然是可以的,不过这个过滤器把 HTML 的结构层次都删没了,不是我要的结果,我只想删除那些因为使用了循环产生的空白,而不是想把自己留的删除掉
    amezf
        15
    amezf  
       2018-04-17 14:09:12 +08:00
    把默认的模板引擎换成 jinja2 不就好了
    wizardoz
        16
    wizardoz  
       2018-04-17 14:14:42 +08:00
    谁会关心输出 html 的结构层次?前后端分离的开发场景里面,还要用 webpack 打包一下,瞬间代码全糊了。
    Hopetree
        17
    Hopetree  
    OP
       2018-04-17 15:36:06 +08:00
    @guoqiao 这种并不适合,因为循环和条件语句中间一般都包含了很多 HTML 代码,不可能不换货,算了,反正前端有空行就空行吧,也不影响效果,我也就强迫症问一下,既然没有我想要的解决办法就不弄了
    Hopetree
        18
    Hopetree  
    OP
       2018-04-17 15:36:59 +08:00
    @amezf 这个方式我知道,我之所以问这个就是想看看是否有不通过换模板引擎的方式来解决,看来并没有
    xiwangzishi
        19
    xiwangzishi  
       2018-04-17 15:40:31 +08:00
    base.html

    {% spaceless %}
    {% endspaceless %}


    解决问题
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2774 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 14:46 PVG 22:46 LAX 06:46 JFK 09:6
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86