引言随着Web开发技术的发展,前后端分离已经成为一种主流的架构模式。FastAPI作为Python的一个现代、快速(高性能)的Web框架,与Vue.js这样的前端框架结合,能够构建出高效、可扩展的We...
随着Web开发技术的发展,前后端分离已经成为一种主流的架构模式。FastAPI作为Python的一个现代、快速(高性能)的Web框架,与Vue.js这样的前端框架结合,能够构建出高效、可扩展的Web应用程序。本文将为您详细介绍如何快速搭建FastAPI后端与Vue前端的无缝部署环境。
在开始之前,请确保您的系统已经安装以下软件:
pip install fastapi uvicornpython -m venv venv
source venv/bin/activate # 在Windows上使用venvScriptsactivatemkdir fastapi-project
cd fastapi-project
touch main.py# main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root(): return {"Hello": "World"}uvicorn main:app --reload此时,您的FastAPI后端应用已经启动,并且可以通过访问 http://127.0.0.1:8000/ 来访问根路由。
npm install -g @vue/clivue create vue-project
cd vue-projectnpm install axiostouch src/components/HelloWorld.vue<!-- HelloWorld.vue -->
<template> <div> <h1>{{ message }}</h1> </div>
</template>
<script>
import axios from 'axios';
export default { data() { return { message: '' }; }, mounted() { axios.get('http://127.0.0.1:8000/') .then(response => { this.message = response.data.Hello; }) .catch(error => { console.error('Error fetching data:', error); }); }
}
</script>// src/main.js
import Vue from 'vue'
import App from './App.vue'
Vue.config.productionTip = false
new Vue({ render: h => h(App),
}).$mount('#app')<!-- App.vue -->
<template> <div id="app"> <HelloWorld/> </div>
</template>
<script>
import HelloWorld from './components/HelloWorld.vue'
export default { name: 'App', components: { HelloWorld }
}
</script>npm run serve此时,您的Vue前端应用已经启动,并且可以通过访问 http://127.0.0.1:8080/ 来访问根路由。
将FastAPI后端项目部署到服务器:
将Vue前端项目部署到服务器:
通过以上步骤,您已经成功搭建了一个FastAPI后端与Vue前端的无缝部署环境。在实际开发过程中,您可以根据需求对后端API和前端页面进行扩展和优化。祝您开发愉快!