色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Flask + Vue的Web 框架 Flask 開發的詞云生成應用

馬哥Linux運維 ? 來源:掘金 ? 作者:snowspace ? 2021-06-28 09:30 ? 次閱讀

前言這是一個前端用 Vue,后端用 Python 的 Web 框架 Flask 開發的詞云生成應用,代碼已上傳到 flask-vue-word-cloud

項目地址:https://github.com/77Y/flask-vue-word-cloud

寫這個小項目的起因是最近團隊年終述職,有一些大佬的 PPT 上用了詞云來展示自己團隊一年的工作成果;還有大佬說不要守著自己的一畝三分地,在技術上拓寬視野可以幫助我們更好的成長

正好之前接觸過 Python 和 R 生成詞云,于是作為一個移動端開發者,想在本地跑一個生成詞云的服務,就有了這個項目

目錄結構先簡單看一下項目的目錄結構,backend 是 Flask 實現的服務端,frontend 是 Vue 實現的前端。

├── backend

│ ├── app

│ └── venv

└── frontend

├── README.md

├── build

├── config

├── dist

├── index.html

├── node_modules

├── package-lock.json

├── package.json

├── src

└── static

開發環境硬件:

macOS Mojave 10.14.6

軟件:

nodejs v11.6.0

Python 3.7.4

請確保已經安裝好了node js 環境,可參考nodejs官網進行安裝。

前端開發1、安裝vue-cli安裝 vue-cliVue CLI 是一個基于 Vue.js 進行快速開發的完整系統。

$ npm install -g vue-cli

2、創建項目新建目錄

$ mkdir word-cloud

$ cd word-cloud/

創建項目

$ vue init webpack frontend

執行完上面的命令后,會讓你設置項目的基本信息,我的配置如下:

4985dc94-d79b-11eb-9e57-12bb97331649.jpg

然后等待安裝一些基本的依賴,完成之后進入到 frontend 目錄

$ cd frontend

$ npm run dev

執行完后會在控制臺提示

Your application is running here: http://localhost:8080

說明我們現在已經可以跑起來了,可以訪問一下http://localhost:8080

這時我們再看一下 frontend 的目錄結構,已經默認幫我們生成了一些目錄和代碼。

├── README.md

├── build

├── config

├── index.html

├── node_modules

├── package-lock.json

├── package.json

├── src

└── static

3、安裝element-uiElement 是一套為開發者、設計師和產品經理準備的基于 Vue 2.0 的桌面端組件庫。

$ npm i element-ui -S

使用插件

在 vue-cli 幫我們生成的目錄中/src/main.js中導入ElementUI

import ElementUI from‘element-ui’import‘element-ui/lib/theme-chalk/index.css’

最后使用

Vue.use(ElementUI)

4、安裝axios因為是前后端分離的應用,所以還要安裝請求的庫axios。axios 是基于 promise 的 HTTP 客戶端。

$ npm install --save axios

同樣在/src/main.js導入axios

import axios from ‘axios’

注冊axios

Vue.prototype.axios = axios

之后我們就可以使用 axios 發送請求了。

5、編寫頁面先找到App.vue,把我們不需要的 logo 刪掉。

《template》《div id=“app”》《!-- 《img src=“。/assets/logo.png”》 --》《router-view/》《/div》《/template》

新建WordCloud.vue,這就是我們的主要頁面。一個標題,一個輸入框,兩個按鈕。

《template》《div》《h2》小詞云《/h2》《div id=“word-text-area”》《el-input type=“textarea” :rows=“10” placeholder=“請輸入內容” v-model=“textarea”》《/el-input》《div id=“word-img”》《el-image :src=“‘data:image/png;base64,’+pic” :fit=“fit”》《div slot=“error” class=“image-slot”》《i class=“el-icon-picture-outline”》《/i》《/div》《/el-image》《/div》《div id=“word-operation”》《el-row》《el-button type=“primary” @click=“onSubmit” round》生成詞云《/el-button》《el-button type=“success” @click=“onDownload” round》下載圖片《/el-button》《/el-row》《/div》《/div》《/div》《/template》

實現點擊事件并發送請求

《script》

exportdefault {

name: ‘wordcloud’,

data() {

return {

textarea: ‘’,

pic: “”,

pageTitle: ‘Flask Vue Word Cloud’,

}

},

methods: {

onSubmit() {

var param = {

“word”: this.textarea

}

this.axios.post(“/word/cloud/generate”, param).then(

res =》 {

this.pic = res.data

console.log(res.data)

}

).catch(res =》 {

console.log(res.data.res)

})

},

onDownload() {

const imgUrl = ‘data:image/png;base64,’ + this.pic

const a = document.createElement(‘a’)

a.href = imgUrl

a.setAttribute(‘download’, ‘word-cloud’)

a.click()

}

}

}

《/script》

最后在src/router中找到index.js修改一下路由。

export default new Router({

routes: [{

path: ‘/’,

name: ‘index’,

component: WordCloud

}]

})

打包資源

$ npm run build

執行完成后會將資源打包到dist目錄。

至此,前端的開發工作就完成了。

后端開發1、安裝Python3先安裝一下Python3,這里我使用 homebrew 安裝。

brew install python3

由于我之前已經安裝過了,執行完成之后出現警告,按照提示操作

Warning: python 3.7.4_1 is already installed, it‘s just not linked You can use brew link python to link this version.

Linking /usr/local/Cellar/python/3.7.4_1.。。 Error: Permission denied @ dir_s_mkdir - /usr/local/Frameworks

再次出現錯誤,沒有權限

參考處理:stackoverflow.com/questions/2…

sudo chown -R $USER:admin /usr/local

再次執行

brew link python

Linking /usr/local/Cellar/python/3.7.4_1.。。 1 symlinks created

錯誤解決,執行 python3 可以正確顯示版本號。

$ python3

Python 3.7.4 (default, Sep 7 2019, 1802)

[Clang 10.0.1 (clang-1001.0.46.4)] on darwin

Type “help”, “copyright”, “credits” or “license” for more information.

2、創建虛擬環境Python 虛擬環境可以為 Python 項目提供獨立的運行環境,使得不同的應用使用不同的 Python 版本,我們使用虛擬環境開發一個 Python 應用。

新建后端目錄

$ mkdir backend

$ cd backend/

創建虛擬環境

python3 -m venv venv

激活虛擬環境

source venv/bin/activate

關閉虛擬環境的命令如下

deactivate

3、安裝 flask關于 flask 我們在文章最開始已經介紹過。

pip install flask

如果沒有報錯,那就就安裝成果了。

4、安裝詞云生成庫wordcloud 是 python 優秀的詞云生成庫。詞云以詞語為基本單位更加直觀的展示文本。

pip install wordcloud

4、編寫代碼關于 flask 代碼部分參考了The Flask Mega-Tutorial教程,看完第一章就可以寫出應用了。這里我解釋一下關鍵代碼。

在__init__.py中修改python默認html和靜態資源目錄,這個資源就是我們上面在前端開發中通過npm run build生成的資源目錄。

app = Flask(__name__,

template_folder=“。。/。。/frontend/dist”,

static_folder=“。。/。。/frontend/dist/static”)

修改完成之后再啟動 Flask,訪問的就是 vue 的頁面了。

routes.py 里面的代碼,就是主頁面和生成詞云的接口

# 真正調用詞云庫生成圖片def get_word_cloud(text):# font = “。/SimHei.ttf”# pil_img = WordCloud(width=500, height=500, font_path=font).generate(text=text).to_image()

pil_img = WordCloud(width=800, height=300, background_color=“white”).generate(text=text).to_image()

img = io.BytesIO()

pil_img.save(img, “PNG”)

img.seek(0)

img_base64 = base64.b64encode(img.getvalue()).decode()

return img_base64

# 主頁面@app.route(’/‘)@app.route(’/index‘)def index():return render_template(’index.html‘)

# 生成詞云圖片接口,以base64格式返回@app.route(’/word/cloud/generate‘, methods=[“POST”])def cloud():

text = request.json.get(“word”)

res = get_word_cloud(text)

return res

最后執行flask run就可以跑起來了

當然這是用半天時間跑起來的一個簡陋的應用,但是具備了基本的前后端分離應用的功能

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Web
    Web
    +關注

    關注

    2

    文章

    1279

    瀏覽量

    70653
  • python
    +關注

    關注

    56

    文章

    4822

    瀏覽量

    85956
  • vue
    vue
    +關注

    關注

    0

    文章

    58

    瀏覽量

    8104

原文標題:實戰:Flask + Vue 生成漂亮的詞云

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 1人收藏

    評論

    相關推薦
    熱點推薦

    Web Components實踐:如何搭建一個框架無關的AI組件庫

    作者: 京東科技 牛志偉 一、讓人又愛又恨的Web Components Web Components是一種用于構建可重用的Web元素的技術。它允許開發者創建自定義的HTML元素,這些
    的頭像 發表于 04-08 11:27 ?181次閱讀
    <b class='flag-5'>Web</b> Components實踐:如何搭建一個<b class='flag-5'>框架</b>無關的AI組件庫

    科技獲亞馬遜科技生成式AI能力認證

    近日,管理服務提供商聚科技成功獲得亞馬遜科技生成式AI能力認證。此次認證標志著聚科技在利用亞馬遜
    的頭像 發表于 02-19 10:33 ?334次閱讀

    科技榮獲亞馬遜科技生成式AI能力認證

    助力企業加速生成式AI應用落地 北京2025年2月14日?/美通社/ -- 管理服務提供商聚科技獲得亞馬遜科技生成式AI能力認證,利用
    的頭像 發表于 02-14 16:07 ?287次閱讀

    基于Django89的web框架代碼

    基于Django89的web框架代碼,超詳細
    發表于 02-10 15:38 ?0次下載

    Quantinuum發布開創性生成式量子人工智能框架

    科羅拉多州布魯姆菲爾德與倫敦,2025年2月5日——Quantinuum今日宣布了一項重大突破,推出了開創性的生成式量子人工智能框架(Gen QAI)。這一框架利用獨特的量子生成數據,
    的頭像 發表于 02-10 11:34 ?366次閱讀

    熱門前端框架:引領現代 Web 開發的潮流

    在當今快速發展的前端開發領域,熱門前端框架如 React、Vue 和 Angular 等,成為了開發者構建高效、高性能 Web 應用的得力工
    的頭像 發表于 01-22 10:08 ?342次閱讀

    AI開發框架集成介紹

    隨著AI應用的廣泛深入,單一框架往往難以滿足多樣化的需求,因此,AI開發框架的集成成為了提升開發效率、促進技術創新的關鍵路徑。以下,是對AI開發
    的頭像 發表于 01-07 15:58 ?395次閱讀

    華為 Flexus X 實例下的場景體驗——小企業使用 Python 語言——超迅速搭建簡單公網 API 接口服務

    ,希望本文可以對小企業來說有一定的幫助作用。 目錄 前言 環境說明 連接并安裝 Python 環境 Python Web 接口編碼 上傳 WebAPI 接口代碼 安裝 flask
    的頭像 發表于 12-27 13:46 ?387次閱讀
    華為<b class='flag-5'>云</b> Flexus X 實例下的場景體驗——小企業使用 Python 語言——超迅速搭建簡單公網 API 接口服務

    Vue3設計思想及響應式源碼剖析

    對象的原型上,難以實現TreeShaking。 ?架構層面對跨平臺dom渲染開發支持不友好,vue3允許自定義渲染器,擴展能力強。 ?CompositionAPI。受ReactHook啟發 ?對虛擬
    的頭像 發表于 12-20 10:24 ?352次閱讀

    SSM框架在Java開發中的應用 如何使用SSM進行web開發

    SSM框架,即Spring、SpringMVC和MyBatis的整合,是Java Web開發中常用的技術棧。它通過分層架構,實現了視圖、控制、業務邏輯和數據訪問的分離,提高了代碼的可維護性和可擴展性
    的頭像 發表于 12-16 17:28 ?1254次閱讀

    大語言模型開發框架是什么

    大語言模型開發框架是指用于訓練、推理和部署大型語言模型的軟件工具和庫。下面,AI部落小編為您介紹大語言模型開發框架
    的頭像 發表于 12-06 10:28 ?406次閱讀

    HarmonyOS NEXT應用元服務開發Intents Kit(意圖框架服務)事件推薦開發者測試

    事件共享:開發者登錄應用即可獲取側事件捐贈的SID,然后觸發事件推送,將事件內容同步到華為。 【舉例】某出行類APP接入意圖框架航班提醒的特性。用戶通過APP購買了機票,觸發
    發表于 11-18 17:39

    bootstrap框架vue框架的區別

    Bootstrap和Vue都是目前非常流行的前端開發框架,它們各自具有獨特的優勢和特點。 設計理念 Bootstrap是一個基于HTML、CSS和JavaScript的前端開發
    的頭像 發表于 07-11 09:55 ?1281次閱讀

    bootstrap框架用什么軟件開發

    Bootstrap是一個流行的前端框架,用于快速開發響應式和移動優先的Web應用程序。它提供了一套預定義的CSS和JavaScript組件,使得開發者可以快速構建出漂亮的用戶界面
    的頭像 發表于 07-11 09:50 ?724次閱讀

    如何使用flask替換pipeline_raw_http示例中的server.py?

    您好,我正在嘗試將pipeline_raw_http示例對接到flask 服務器上,按照server.py重構后的代碼如下: import datetimeimport wavefrom flask
    發表于 06-28 07:17
    主站蜘蛛池模板: 日韩一区二区天海翼 | fyeex性欧美人与曾 | 欧美性狂猛AAAAAA | 10分钟免费观看视频 | 久久国产精品永久网站 | tube日本护士 | 一本道亚洲区免费观看 | 男女后进式猛烈xx00动态图片 | 伊人热| 国产精品久久久久久久久久久 | 久久橹 | 天天狠狠色综合图片区 | 一本道亚洲区免费观看 | 国精产品一区一区三区有 | ewp绞死vk失禁编 | 在线看片成人免费视频 | 福利免费观看体检区 | 甜宠溺H宝贝嗯撞PLAY啊 | 亚洲风情无码免费视频 | jizz国产丝袜18老师美女 | 国产成久久免费精品AV片天堂 | 99pao成人国产永久免费视频 | 日本欧美午夜三级 | 国产剧情在线精品视频不卡 | 欧美人与禽zoz0性伦交app | 日本妈妈在线观看中文字幕 | 色偷偷888欧美精品久久久 | 久久 这里只精品 免费 | 国产婷婷午夜精品无码A片 国产婷婷色综合AV蜜臀AV | 久久久久综合网 | 国产成A人片在线观看 | 亚洲精品国产乱码AV在线观看 | 好紧小嫩嫩水的10p 好紧好湿太硬了我太爽了小说 | 国产精品无码视频一区二区 | 成人在线观看免费视频 | 一二三四高清中文版视频 | 九九精品在线播放 | 18禁在线无遮挡羞羞漫画 | 久久88综合 | 精品免费久久久久久成人影院 | 日韩精品AV一区二区三区 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品