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

web 小白问个前后端分离的问题

  •  
  •   CoooolChan · 2014-09-26 18:45:55 +08:00 via Android · 2792 次点击
    这是一个创建于 3710 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近在用flask做个站,感觉不依赖ajax的情况下,没有办法做到完全分离,比如我在一个页面要显示10篇文章,由服务器端直接生成html返回,必须用到模板?
    8 条回复    2014-09-26 21:25:47 +08:00
    jsonline
        1
    jsonline  
       2014-09-26 19:05:32 +08:00 via Android
    前后端与语言无关。
    你把模板看成前端不就好了
    loading
        2
    loading  
       2014-09-26 20:20:03 +08:00 via iPad
    你可能是指一套的模板系统?很多cms系统是用自定的模板标签构成的模板系统进行的,要彻底分离,现在的restful算是比较时髦的方法。

    还有 css花园 的一个html不同css大变样你懂吧?
    kmvan
        3
    kmvan  
       2014-09-26 20:20:35 +08:00 via Android
    不要生成html,随着杰森数据,js模板生成html这样比较好
    CoooolChan
        4
    CoooolChan  
    OP
       2014-09-26 21:02:32 +08:00
    @kmvan 这个我理解,服务器直接返回json数据或者其他格式也行,但是返回的数据都需要再用js解析,没有js页面就是空白的了,但是我想在服务器端直接生成html,是不是只能把后端代码写进html里面了?
    kmvan
        5
    kmvan  
       2014-09-26 21:09:36 +08:00 via Android
    如果你不在乎seo,或者是不很重要的数据,根本不用担心没有js就不显示了这个问题,那都是十年前的事情了
    CoooolChan
        6
    CoooolChan  
    OP
       2014-09-26 21:15:05 +08:00
    @kmvan 那目前流行的js模板有什么,我感觉flask自带的jinja2很强悍,但是这样html里会有各种奇怪的东东,所以才有此问
    learnshare
        7
    learnshare  
       2014-09-26 21:21:49 +08:00
    前端只从后端拿 JSON 数据,前端负责渲染模板。Ajax 是获取数据的主要方式
    hitsmaxft
        8
    hitsmaxft  
       2014-09-26 21:25:47 +08:00
    @CoooolChan 问题得这么看

    把应用拆分成数据提供方和页面渲染方两个角色。
    传统的动态页面应用通过mvc, 把页面渲染的逻辑限制在view中, 达到视图和数据分离。

    而现在提倡用 客户端、服务端进行前后端分离。也就是把上面说的view,简化成把数据压缩转成json字符串。 剩下的视图渲染交给服务端的js, 这也就派生出ajax这种解决方案

    但是这个过程是可以灵活调整的。 比如你可以把整篇文章的内容(html)当做字符串放进json,也可以按内容拆分成多种数据, 由js选择怎么拼接渲染输出。

    模板的目的是将数据转换成视图。在从数据库到浏览器输出,中间得经历很多层不同类型的模板。html也不是是终格式,毕竟可以靠json直接生成dom结构。 我感觉你没理解清楚。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   917 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:33 · PVG 04:33 · LAX 12:33 · JFK 15:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.