首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Django

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

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

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

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

    19 回复  |  直到 2018-04-17 15:40:31 +08:00
        1
    SingeeKing   91 天前 via iPhone
    django-htmlmin ?
        2
    zjb861107   91 天前
    用 spaceless 也不行吗
        3
    misaka19000   91 天前
    去不掉就去不去掉啊。。。又没有人在乎源码好不好看
        4
    PressOne   91 天前 via Android
    jinja 有这个 bug 吗?怎么没发现过,楼主截个图看下,是不是真是 jinja 的锅?
        5
    wd   91 天前 via iPhone
    @PressOne 楼主说的是 drango drango 用的不是 jinja
        6
    turan12   91 天前
    如果是为了减少数据流量的话,试试启用 gzip。
        7
    Wichna   91 天前
    官方文档上写了,看看这里就知道了 http://jinja.pocoo.org/docs/2.10/templates/#whitespace-control
        8
    SingeeKing   91 天前
    @Wichna #7 Django 用的不是 Jinjia。。
        9
    so1n   91 天前
    我记得 django 的文档 模板-设计 api 里面有 可以找一找
        10
    Hopetree   91 天前
    @PressOne 不是 jinja 有 bug,jinja 可以去掉空白,django 默认不是 jinja
        11
    xavierskip   91 天前
    django 自带模版好像没有什么办法
    自己写一个? https://djangosnippets.org/snippets/569/
        12
    guoqiao   91 天前
    条件语句不要换行就好了,例如,本来这样:

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

    {% spaceless %}
    {% endspaceless %}


    解决问题
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   实用小工具   ·   3033 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 17ms · UTC 03:16 · PVG 11:16 · LAX 20:16 · JFK 23:16
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1