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