python vue flask_Python构建RESTful网络服务[Flask篇:用Flask+Vue.js打造全栈单页面应用]...

本文介绍如何使用Python的Flask框架和Vue.js前端库联合构建全栈单页面应用。通过Vue CLI初始化前端项目,设置路由,并使用Webpack进行前端工程化。在Flask中配置路由,处理前端路由重定向,实现API接口,同时解决CORS跨域问题。最后,讨论了生产环境的部署优化和项目改进方案。
摘要由CSDN通过智能技术生成

前言

本来在着手写关于使用Flask构建RESTful网络服务的文章,正好看到一篇相关文章,提供了一个Flask+vue构建全栈单页面应用的例子,觉得不错,就在此分享给大家。

作者Oleg Agapov ,似乎是俄语使用者,不过这篇文章是用英文写的,文风细致友好,可以一读。考虑到一些朋友不方便查看外网,特此翻译并转载到知乎专栏。以下是全文及几条网友问答翻译。

注意:阅读本文需要一点点的Flask知识和一点点的Vue知识(只要你看过任何一点点新建一个Flask应用且看过任何一点点新建一个Vue应用的文章,就满足了本条要求)

另外:Python构建RESTful网络服务[Django篇]没有完结,仍在连载中,见专栏更新。

用Flask+Vue.js打造全栈单页面应用

在本教程中,我将向您展示如何将Vue.js单页面应用程序与Flask后端整合起来。

基本上,如果你只想在Flask模板中使用Vue.js库,那么问题不大。唯一值得注意是Jinja(模板引擎)使用双花括号来渲染变量,而Vue插值也使用双花括号,解决这问题可以见这里https://github.com/yymm/flask-vuejs。

而本文要说的是另一种情况:我需要一个使用Vue.js构建的单页面应用程序(使用单页面组件、history模式的vue-router和其他优秀特性),并通过Flask服务器提供服务。简而言之,应该是这样工作的:Flask伺服一个index.html,这是我的Vue.js应用入口文件

使用Webpack进行前端工程化开发

可以从SPA访问Flask的API端点

使用Node.js运行前端项目时,也可以访问Flask的API端点

这种情况该怎么办呢?听起来是不是很有趣,说干就干吧!

客户端

我使用vue-cli生成基本的Vue.js应用程序。如果你还没有安装Vue.js,只要运行:

$ npm install -g vue-cli

客户端和后端代码将被分别放到不同的文件夹。初始化前端部分运行如下:

$ mkdir flaskvue

$ cd flaskvue

$ vue init webpack frontend

通过安装向导,按如下设置是:Vue build — Runtime only #仅在运行时构建

Install vue-router? — Yes # 使用vue-router提供的前端路由

Use ESLint to lint your code? — Yes # 使用ESLint检查代码

Pick an ESLint preset — Standard # 设置ESLint为标准模式

Setup unit tests with Karma + Mocha? — No # 不使用Karma + Mocha进行单元测试

Setup e2e tests with Nightwatch? — No # 不使用Nightwatch进行端对端测试

下一步:

$ cd frontend

$ npm install

# after installation

$ npm run dev

启动Vue.js应用开发服务器。让我们先来添加一些页面。

添加 Home.vue 和 About.vue 到 frontend/src/components 文件夹。简单填写一下,就像这样:

// Home.vue

Home page

// About.vue

About

现在要构建前端路由,前端应用要知道怎么处理我们我们在浏览器地址栏中填写地址。在frontend/src/router/index.js文件中填写如下内容来渲染我们的新组件:

import Vue from 'vue'

import Router from 'vue-router'

const routerOptions = [

{ path: '/', component: 'Home' },

{ path: '/about', component: 'About' }

]

const routes = routerOptions.map(rout

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值