基于Vue-cli的前端项目初始化
初始化
Vue-cli环境配置详情见前端框架之Vue.js(一)安装小节里的“使用npm安装”内容。
初始化一个新项目,创建文件夹tutorproject作为项目目录,打开一个终端将切换路径到tutorproject,运行代码以创建front-end文件夹:
1
2
3
4
5
6
7
8
9
10PS C:\Users\Administrator\Desktop\code_learn\flask_exercise\tutorproject> vue create front-end
运行结果如下:
Vue CLI v5.0.8
? Please pick a preset: (Use arrow keys)
> first ([Vue 3] babel, eslint)
ssecond ([Vue 3] babel, eslint)
Default ([Vue 3] babel, eslint)
Default ([Vue 2] babel, eslint)
Manually select features使用方向键选中
Default ([Vue 2] babel, eslint)
选项后按下键盘上的回车键,然后脚手架工具就开始构建项目,并且安装所需的依赖。将切换路径到front-end,运行代码以启动Vue应用程序:
1
2PS C:\Users\Administrator\Desktop\code_learn\flask_exercise\tutorproject> cd front-end
PS C:\Users\Administrator\Desktop\code_learn\flask_exercise\tutorproject\front-end> npm run serve打开浏览器输入网址
http://localhost:8080/
,即可看到应用程序:
组件Ping.vue
将\tutorproject\front-end\src\components
目录下的HelloWorld.vue
文件删除,并在当前目录下新建文件Ping.vue
:
1 | <template> |
在tutorproject\front-end\src
目录下新建路由文件夹router
,并在router
文件夹中新建文件index.js
:
1 | import Vue from 'vue' |
修改front-end\src\App.vue
中<script>...</script>
部分的import代码如下:
1 | <script> |
修改front-end\vue.config.js
文件的代码以关闭语法检查:
1 | const { defineConfig } = require('@vue/cli-service') |
此时的代码结构如下:
再次在浏览器中访问http://localhost:8080/
,可以看到页面发生了变化:
使用axios与API交互
在cmd
中按下ctrl+c
停止应用程序,使用以下命令安装axios:
1 | PS C:\Users\Administrator\Desktop\code_learn\flask_exercise\tutorproject\front-end> cnpm install axios --save |
依赖关系自动写进了front-end\package.json
中,在package.json文件的dependencies
里可以看到刚安装的axios。
输入npm run serve
重新启动Vue
。
修改\front-end\src\components\Ping.vue
中<script>...</script>
部分的代码如下:
1 | <script> |
另外打开一个终端将切换路径到tutorproject\back-end
(博客后端的项目文件),运行代码以运行flask服务端:
1 | PS C:\Users\Administrator\Desktop\code_learn\flask_exercise\tutorproject\back-end> venv\Scripts\activate |
此时在浏览器中访问http://localhost:8080/
,可以看到页面再次发生了变化:
若没有获取到后端API端口的数据pong!
,解决方案如下:
停止flask的运行,使用pip安装
Flask-Cors
包1
2(venv) PS C:\Users\Administrator\Desktop\code_learn\flask_exercise\tutorproject\back-end> pip install flask-Cors
(venv) PS C:\Users\Administrator\Desktop\code_learn\flask_exercise\tutorproject\back-end> pip freeze > requirements.txt然后修改
tutorproject\back-end\tutorweb\__init__.py
:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29from flask import Flask
from flask_cors import CORS
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from config import Config
#定义Flack_SQLAlchemy
db=SQLAlchemy()
#定义Flack_Migrate
migrate=Migrate()
def create_app(config_class=Config):
app=Flask(__name__)
app.config.from_object(config_class)
#启用CORS
CORS(app)
#初始化Flack_SQLAlchemy
db.init_app(app)
#初始化Flack_Migrate
migrate.init_app(app,db)
#注册blueprint
from tutorweb.api import bp as api_bp
app.register_blueprint(api_bp,url_prefix='/api')
return app
from tutorweb import models然后再启动flask,访问
http://localhost:8080/
页面即可。
引入element-UI
使用cnpm
命令安装:
1 | PS C:\Users\Administrator\Desktop\code_learn\flask_exercise\tutorproject\front-end> cnpm install element-ui -S |
修改\front-end\src\main.js
,引入element-UI样式:
1 | import { createApp } from 'vue' |
修改\front-end\src\components\Ping.vue
中<template>...</template>
部分的代码,创建element-UI风格的按钮:
1 | <template> |
在浏览器中访问http://localhost:8080/
,可以看到element-UI风格的按钮pong!
:
至此,博客前端的欢迎页面完成,页面的具体样式可以根据自己的喜好自行更改。
博客后续的登录注册等页面,由于代码过多且繁杂,暂且不表,该部分的后续看心情更新。(除非...评论区呼声高,嗯!)