引言
我们知道flask内置了jinja2模板引擎用来渲染前端页面,但在企业合作开发中,我们一般不使用这种方式,原因如下
- 与前端合作困难。前端写完页面,你再去改,添加诸如{}这样的模板变量,你改完,前端还得要在那些模板变量基础上改,想想都觉得不应该采用这种方式
- 耦合较高,
html由flask渲染产生,内置了一些逻辑语句
这种方式一般适合个人全栈开发,也有很多优点
seo友好,数据全在服务端渲染,数据就在页面中,方便seo优化- 部署方便,没有跨域问题,前端模板和后端在一个域下面
前后端分离
在企业实践中,一般采用前后端分离的方式协作,前端写页面,同过ajax或者axios等http库向服务端请求数据再渲染页面。
服务端只需要写api接口,把数据提供给前端。前后端交互的数据格式一般用json
目前常用的前端框架是 vue,angular,react,他们都是单页面框架。
以 vue为例,它只有一个html页面,你看到的页面变化之不过是不同的vue组件在切换
数据一般通过axios向后端请求。但问题在于,这样的html没有任何数据,不利于seo优化
解决的办法有很多,一种方式就是前端依然不使用这三大框架,而是手写html页面,这里面就包括了一些写死的数据,一些需要服务端提供的数据,通过ajax和服务端交互