国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

詳細(xì)講解Flask-Vue前后端分離的過程

89542767 / 1343人閱讀

  寫這篇文章的主要目的是,給大家詳細(xì)的進(jìn)行介紹關(guān)于Flask-Vue前后端分離的過程,詳細(xì)介紹一下相關(guān)代碼的使用規(guī)范,以及一些相關(guān)實(shí)例,希望可以給大家?guī)硪欢ǖ膸椭?/span>

 

  最近學(xué)習(xí)了一下前后端分離技術(shù),前端用的是Vue,后段用的是Flask

 

  vue官方網(wǎng)站:開源框架用的是Javascript框架,vue是前端前進(jìn)式的框架,具備可視化功能,Vue采用自底向上的增量開發(fā)設(shè)計(jì)。vue是輕量化的框架設(shè)計(jì),用起來簡單快速,并且比較的輕便。

 

  vue.js滿足當(dāng)前移動和PCweb項(xiàng)目的開發(fā)需求,框架油然而生,而Vue.js框架便是這樣一種js的框架。它具有兩大核心功能:以海量數(shù)據(jù)為積累,實(shí)現(xiàn)簡單組件化功能。

 

  Flask:用Python實(shí)現(xiàn),是一個web框架,屬于微框架。

 

  1、主要依賴版本

 

  Python:V3.6.4

 

  Vue:V2.9.6

 

  Vue-CLI:V2.9.6

 

  node:v10.6.0

 

  npm:V6.1.0

 

  Flask:V1.0.2

 

  Flask-Cors:V3.0.6

 

  bootstrap:V4.0.0(最新版4.1.2不兼容)

 

  以下項(xiàng)目的創(chuàng)建都是在Python虛擬環(huán)境和npm局部安裝的,只有Vue-CLI是全局安裝的。

 

  2、構(gòu)建Python虛擬環(huán)境

 

  防止依賴的混亂,首先創(chuàng)建虛擬環(huán)境。

Mac:code hubo$ mkdir flask-vue-crud
Mac:code hubo$ cd flask-vue-crud/
Mac:flask-vue-crud$ python -m venv venv
Mac:flask-vue-crud$ source venv/bin/activate
(venv) Mac:flask-vue-crud hubo$ ls
venv

  第一行創(chuàng)建flask-vue-crud文件夾,第三行創(chuàng)建python虛擬環(huán)境python3.3版本可以通過venv模塊,python2版本可以使用virtualenv模塊。

 

  第四行激活虛擬環(huán)境。

 

  Windowssource venv/Scripts/activate.bat

 

  Linuxsource venv/bin/activate

 

  3、創(chuàng)建Flask項(xiàng)目

 

  第一步要做的就是安裝FlaskFlask-CORS擴(kuò)展。

 

  什么是Flask—CORS

 

  假如應(yīng)用不一樣的協(xié)議,又或者是請求來自于其他的IP地址或域名或端口,就需要用到Cross Origin Resource SharingCORS),這正是Flask-CORS擴(kuò)展幫我們做到的。實(shí)際環(huán)境中只配置來自前端應(yīng)用所在的域的請求。

(venv) Mac:flask-vue-crud hubo$ pip install Flask Flask-Cors

  然后在根目錄下創(chuàng)建app.py文件:

from flask import Flask, jsonify
from flask_cors import CORS
app = Flask(__name__)
CORS(app)
@app.route('/', methods=['GET'])
def ping_pong():
    return jsonify('Hello World!')     #(jsonify返回一個json格式的數(shù)據(jù))
if __name__ == '__main__':
    app.run()

  然后執(zhí)行:

(venv) Mac:flask-vue-crud hubo$ python app.py

  打開瀏覽器,輸入http://localhost:5000/ping,會看到輸出

Hello World!

  目前Flask環(huán)境已經(jīng)配置好,并且已經(jīng)創(chuàng)建了一個FlaskDemo

  4Vue Setup

 

  Vue CLI:官方發(fā)布vue.js項(xiàng)目腳手架,使用vue-cli可以快速創(chuàng)建vue項(xiàng)目。

 

  首先全局安裝vue Clinpm install-g(全局安裝)npm下載的國外的依賴,可以使用某寶的cnpm

 

  下載某寶的cnpm

npm install -g cnpm --registry=https://registry.npm.taobao.org

  使用npmcnom下載vue cli

(venv) Mac:flask-vue-crud hubo$ npm insatll -g vue-cli

  查看安裝成功

Mac:~ hubo$ vue -V
2.9.6

  接下來通過webpack初始化一個新的Vue項(xiàng)目client

Mac:flask-vue-crud hubo$ vue init webpack client

? Project name client
? Project description A Vue.js project
? Author hubo <1290259791@qq.com>
? Vue build standalone
? Install vue-router? Yes
? Use ESLint to lint your code? Yes
? Pick an ESLint preset Airbnb
? Set up unit tests No
? Setup e2e tests with Nightwatch? No
? Should we run `npm install` for you after the project has been created? (recom
mended) npm

  主要寫代碼的位置:/flask-vue-crud/client/src/,目錄結(jié)構(gòu)如下所示:

.
├── App.vue
├── assets
│   └── logo.png
├── components
│   ├── HelloWorld.vue
│   └── Ping.vue
├── main.js
└── router
    └── index.js

  各個目錄的意思:

template:組件的 HTML 內(nèi)容
script: 組件的邏輯代碼(Javascript)
style: 組件的樣式(CSS)

  名字作用

 

  main.js app的入口,它會加載和初始化Vue和根組件

 

  App.vue根組件-其他組件的入口

 

  assets靜態(tài)文件如圖片和字體等都放在這里

 

  components UI組件放在這里

 

  router URL同組件的映射關(guān)系在這里定義

 

  client/src/components/HelloWord.vue是自動生成的單文件組件,有三部分組成:

 

  運(yùn)行該程序:

(venv) Mac:flask-vue-crud hubo$ cd client/
(venv) Mac:client hubo$ ls
README.md index.html package.json
build node_modules src
config package-lock.json static
(venv) Mac:client hubo$ npm run dev     啟動dev

  訪問http://localhost:8080能看到前端頁面

 

  5、添加一個新組件

 

  創(chuàng)建client/src/components/Ping.vue:

<template>
  <div>
    <p>{{ msg }}</p>
  </div>
</template>
<script>
export default {
  name: 'Ping',
  data() {
    return {
      msg: 'Hello!',
    };
  },
};
</script>

  更新client/src/router/index.js,映射/pingPing組件:

import Vue from 'vue';
import Router from 'vue-router';
import HelloWorld from '@/components/HelloWorld';
import Ping from '@/components/Ping';

Vue.use(Router);

export default new Router({
  routes: [
    {
      path: '/',
      name: 'HelloWorld',
      component: HelloWorld,
    },
    {
      path: '/ping',
      name: 'Ping',
      component: Ping,
    },
  ],
  mode: 'history',
});

  上面的mode:'history’是為了讓URL變成http://localhost8080/ping的形式。如果,不加該設(shè)置,默認(rèn)的URLhttp://localhost:8080/#/ping的形式。

 

  訪問http://localhost:8080/ping能看到Hello!

 

  6、連接前后段

 

  通過axios發(fā)送AJAX請求,安裝axios

import Vue from 'vue';
import Router from 'vue-router';
import HelloWorld from '@/components/HelloWorld';
import Ping from '@/components/Ping';

Vue.use(Router);

export default new Router({
  routes: [
    {
      path: '/',
      name: 'HelloWorld',
      component: HelloWorld,
    },
    {
      path: '/ping',
      name: 'Ping',
      component: Ping,
    },
  ],
  mode: 'history',
});

  更新Ping.vue組件,代碼如下。

<template>
  <div>
    <button type="button" class="btn btn-primary">{{ msg }}</button>
  </div>
</template>

<script>
import axios from 'axios';

export default {
  name: 'Ping',
  data() {
    return {
      msg: 'Hello World!',
    };
  },
  methods: {
    getMessage() {
      const path = 'http://localhost:5000/ping';
      axios.get(path)
        .then((res) => {
          this.msg = res.data;
        })
        .catch((error) => {
          // eslint-disable-next-line
          console.error(error);
        });
    },
  },
  created() {

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/127611.html

相關(guān)文章

  • 計(jì)算機(jī)畢業(yè)設(shè)計(jì)大學(xué)英語閱讀大賽管理系統(tǒng)【ssm+vue前后分離】代碼講解安裝調(diào)試

    摘要:作者計(jì)算機(jī)編程吉哥簡介專業(yè)從事程序開發(fā),微信小程序開發(fā),定制化項(xiàng)目源碼代碼講解文檔撰寫制作。做自己喜歡的事,生活就是快樂的。 ?作者:計(jì)算機(jī)編程-吉哥 ?簡介:專業(yè)從事JavaWeb程序開發(fā),微信小程序開發(fā),定制化項(xiàng)目、源碼、代碼講解、文檔撰寫、ppt制作。做自己喜歡的事,生活就是快樂...

    hss01248 評論0 收藏0
  • 系統(tǒng)講解 - SSO單點(diǎn)登錄

    摘要:概念英文全稱,單點(diǎn)登錄。登錄如上述流程圖一致。系統(tǒng)和系統(tǒng)使用認(rèn)證登錄。退出上圖,表示的是從某一個系統(tǒng)退出的流程圖。與的關(guān)系如果企業(yè)有多個管理系統(tǒng),現(xiàn)由原來的每個系統(tǒng)都有一個登錄,調(diào)整為統(tǒng)一登錄認(rèn)證。 概念 SSO 英文全稱 Single Sign On,單點(diǎn)登錄。 在多個應(yīng)用系統(tǒng)中,只需要登錄一次,就可以訪問其他相互信任的應(yīng)用系統(tǒng)。 比如:淘寶網(wǎng)(www.taobao.com),天貓網(wǎng)...

    Kylin_Mountain 評論0 收藏0
  • webpack工程化集成React技術(shù)棧(一)

    項(xiàng)目開始前,我們先聊一聊關(guān)于項(xiàng)目的一些說明。該項(xiàng)目起始于2017年初,當(dāng)時公司主要技術(shù)棧為gulp+angular,鑒于react的火熱的生態(tài),在公司決定研發(fā)bss管理系統(tǒng)時選用react開發(fā),目的也是為react native打下基礎(chǔ),以解決后期公司大前端技術(shù)棧的逐步成熟。(當(dāng)時沒有選擇vue開發(fā)的主要原因是weex生態(tài)還不夠特別成熟),既然決定換新,項(xiàng)目的構(gòu)建也跟著一起換,從gulp轉(zhuǎn)向火熱的...

    tianhang 評論0 收藏0
  • 雙十二大前工程師讀書清單

    摘要:本文最早為雙十一而作,原標(biāo)題雙大前端工程師讀書清單,以付費(fèi)的形式發(fā)布在上。發(fā)布完本次預(yù)告后,捕捉到了一個友善的吐槽讀書清單也要收費(fèi)。這本書便從的異步編程講起,幫助我們設(shè)計(jì)快速響應(yīng)的網(wǎng)絡(luò)應(yīng)用,而非簡單的頁面。 本文最早為雙十一而作,原標(biāo)題雙 11 大前端工程師讀書清單,以付費(fèi)的形式發(fā)布在 GitChat 上。發(fā)布之后在讀者圈群聊中和讀者進(jìn)行了深入的交流,現(xiàn)免費(fèi)分享到這里,不足之處歡迎指教...

    happen 評論0 收藏0
  • 雙十二大前工程師讀書清單

    摘要:本文最早為雙十一而作,原標(biāo)題雙大前端工程師讀書清單,以付費(fèi)的形式發(fā)布在上。發(fā)布完本次預(yù)告后,捕捉到了一個友善的吐槽讀書清單也要收費(fèi)。這本書便從的異步編程講起,幫助我們設(shè)計(jì)快速響應(yīng)的網(wǎng)絡(luò)應(yīng)用,而非簡單的頁面。 本文最早為雙十一而作,原標(biāo)題雙 11 大前端工程師讀書清單,以付費(fèi)的形式發(fā)布在 GitChat 上。發(fā)布之后在讀者圈群聊中和讀者進(jìn)行了深入的交流,現(xiàn)免費(fèi)分享到這里,不足之處歡迎指教...

    余學(xué)文 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<