Vue与flask实现前后端分离

感谢GitHub的大神Mcbai的分享

首先,flask这里渲染的是Vue编译后的文件,即运行了npm run build后的文件。接下来上工程的路径结构:

project
    | -- backend       // backend 文件夹作为后端文件的根目录
    | -- dist          // dist 文件夹里放的是前端打包的最终代码,也就是 npm run build 生成的代码
    | -- frontend      // frontend 自然就是存放前端开发环境的代码了。

fontend就是使用Vue-cli所生成的前端工程:其结构如下:
前端工程的结构

接下来注意修改Vue工程编译生成的文件路径,这样在执行 npm run build 进行生产打包时,文件就能输出到我们想要的位置了。

安装 flask-cors,用来解决开发时的跨域问题:

pip install flask-cors

后端代码:

# run.py

'''
    render_template 是渲染模板用的,这里我们用来返回 index.html
    flask_cors 用来解决跨域的问题
'''
from flask import Flask, render_template
from flask_cors import CORS

# 通过 static_folder 指定静态资源路径,以便 index.html 能正确访问 CSS 等静态资源
# template_folder 指定模板路径,以便 render_template 能正确渲染 index.html
APP = Flask(
    __name__, static_folder="../dist/static", template_folder="../dist")

CORS(APP)


@APP.route("/")
def home():
    '''
        当在浏览器访问网址时,通过 render_template 方法渲染 dist 文件夹中的 index.html。
        页面之间的跳转交给前端路由负责,后端不用再写大量的路由
    '''
    return render_template('index.html')


@APP.route('/test', methods=['GET', 'POST'])
def test():
    ''' 这个API用来测试跨域 '''
    return 'success'


if __name__ == '__main__':
    # 开启 debug模式,这样我们就不用每更改一次文件,就重新启动一次服务
    # 设置 host='0.0.0.0',让操作系统监听所有公网 IP
    # 也就是把自己的电脑作为服务器,可以让别人访问
    APP.run(debug=True, host='0.0.0.0')
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这张照片相信很多人都熟悉,去年火遍了朋友圈。照片的主角叫刘叶琳,更是因为这一组火辣性感的美照火遍全球,成为众多人心...
    团子的精进日记阅读 1,504评论 11 9
  • 慷人懒梳妆, 魂梦自断肠。 惶惶又终日, 何处得安康。
    溪竹青阅读 99评论 0 1
  • 15.4 普通 Qt 课程 QObject 类构成了 Qt 的基础,但框架中还有更多的类。在我们继续关注 QML ...
    赵者也阅读 1,463评论 0 3
  • 2017.10.6 星期五 雨转阴 亲子日记(162) 今天一早起来就听到外面好像下雨了,也许是降温的原因,看到儿...
    于泽妈妈阅读 195评论 0 0
  • 成都的深秋 坐在深秋的夜深深的成都 坐在一个小巷里听着树叶一片片敲打土地的声音 听着那些灯红酒绿起起伏伏 听着那些...
    品格飞扬阅读 387评论 0 0