国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用 Flask 部署 Next.js

這篇具有很好參考價(jià)值的文章主要介紹了使用 Flask 部署 Next.js。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

原文?使用 Flask 部署 Next.js

Flask 和 Next.js 是兩個(gè)獨(dú)特的開源 Web 框架,分別構(gòu)建在 Python 和 JavaScript 編程語言之上。

您可以在沒有 Next.js 的情況下構(gòu)建 Flask 應(yīng)用程序,也可以在沒有 Flask 的情況下構(gòu)建 Next.js 應(yīng)用程序。但是,您可能會(huì)發(fā)現(xiàn)自己使用 Flask 構(gòu)建了一個(gè)應(yīng)用程序,然后決定使用 Next.js 進(jìn)行服務(wù)器端渲染。

那么,此時(shí)你會(huì)怎么做?

您可以嘗試的一件事是逐步采用 Next.js 或 Flask。在本文中,我將向您展示如何使用 Next.js 增量采用設(shè)計(jì)使 Next.js 與 Flask API 無縫協(xié)作,以及如何在 Ubuntu 服務(wù)器上使用 Nginx 部署它。

要在本文中繼續(xù)前進(jìn):

  • 在 Next.js 和 Flask 中構(gòu)建應(yīng)用程序

  • 使用重寫將 Flask API 集成到 Next.js

  • 設(shè)置 Nginx

  • 將 Flask API 和 Next.js API 作為服務(wù)運(yùn)行

  • 使用 PM2 運(yùn)行 Next.js 應(yīng)用程序

在 Next.js 和 Flask 中構(gòu)建應(yīng)用程序

需求_

  • 節(jié)點(diǎn).js v12

  • Python

讓我們從構(gòu)建一個(gè)示例 Next.js 應(yīng)用程序開始。按照官方Next.js 文檔,運(yùn)行以下命令在您的計(jì)算機(jī)上安裝 Next.js :. 按照說明設(shè)置基本應(yīng)用程序。npx create-next-app@latest

這個(gè)裝置會(huì)給我們一個(gè)“Hello, World!” 應(yīng)用程序,準(zhǔn)備部署。如果一切順利,您可以yarn run dev在終端上運(yùn)行并訪問您的瀏覽器以確認(rèn)它可以正常工作。您應(yīng)該看到如下內(nèi)容:localhost:3000

這就是現(xiàn)在的全部?jī)?nèi)容。接下來,讓我們構(gòu)建一個(gè)基本的 Flask API。我假設(shè)您已經(jīng)安裝了 Python,但如果您沒有安裝,您可以按照操作系統(tǒng)官方文檔中的說明進(jìn)行安裝。

首先,讓我們創(chuàng)建并激活一個(gè)虛擬環(huán)境來包含 Python 應(yīng)用程序。

python3 -m venv env & source ./env/bin/activate _ _ _ _

接下來,通過在終端中運(yùn)行以下命令來安裝 Flask 。我們將使用 Flask-RESTful 創(chuàng)建一個(gè) RESTful API:

pip install Flask flask -寧靜

然后,創(chuàng)建一個(gè)名為的文件并將以下代碼添加到其中:hello.py

from flask import Flask from flask_restful import reqparse , Api , Resource 
app = Flask ( __name__ ) 
api = Api ( app ) ?
解析器= reqparse 。RequestParser ()
解析器。add_argument ('task')類消息(資源):def get (self ):return { “message”:'Hello World' } 
api 。add_resource (消息, '/api/hello' )?
如果__name__ == '__main__':應(yīng)用程序。運(yùn)行(調(diào)試=真) 

現(xiàn)在,我們已經(jīng)設(shè)置了 Flask 和 Next.js 應(yīng)用程序。讓我們繼續(xù)讓它們一起工作。

使用重寫將 Flask API 集成到 Next.js

Next.js 重寫允許您將傳入請(qǐng)求路徑映射到不同的目標(biāo)路徑。

進(jìn)入我們剛剛創(chuàng)建的 Next.js 應(yīng)用的目錄,打開文件,將內(nèi)容替換為以下代碼:next.config.js

模塊。export = () => { const rewrites = ( ) = > { return [ { source : " / hello / :path*" , destination : "http://localhost:5000/hello/:path*" , }, ] ; }; 返回{重寫, }; }; ? 

通過這種集成,我們可以直接從 Next.js 訪問我們所有的 API 路由,就好像 API 與 Next.js 客戶端在同一個(gè)域和端口中一樣。這意味著我們只需要調(diào)用,就可以間接訪問端口的 API。http://localhost:3000/api/``5000

讓我們看一個(gè)例子。

打開文件并將其組件替換為“Hello, World!” 下面的組件:/pages/index.js

從'../styles/Home.module.css'導(dǎo)入樣式從' react'導(dǎo)入{ useEffect ,useState } ?
導(dǎo)出默認(rèn)功能Home ( ? ) { const [ message , setMessage ] = useState ( "" ); const [加載, setLoading ] = useState ( true ); ?useEffect ( () => { fetch ( '/hello/' ) . then ( res => res . json ()) . then ( data => { setMessage ( data . message ); setLoading ( false ); }) }, []) ??return ( < div className = { styles.container } > < p > { ! loading ? message : " Loading .." } </ p > </ div > ) } 

上面的代碼是一個(gè)簡(jiǎn)單的 Next.js 組件,它使用 Fetch 與 Flask API 對(duì)話。分身有術(shù)App,微信無限多開神器,支持虛擬定位和機(jī)型模擬等!如您所見,我們不必將確切的 URL 放入 API 調(diào)用中。Next.js 根據(jù)我們最初設(shè)置的設(shè)置來理解它。

當(dāng)然,你也可以選擇直接調(diào)用 Flask API。

設(shè)置 Nginx

現(xiàn)在我們有了一個(gè)有效的集成,讓我們繼續(xù)在 Nginx 中進(jìn)行部署。在你的服務(wù)器酷我音樂車機(jī)版App,專為汽車開發(fā)的聽歌軟件,所有歌曲免登無限制暢聽和下載?。ㄔ谖覀兊睦又惺且粋€(gè) Ubuntu 服務(wù)器)上安裝 Nginx,為你的 Nginx 配置創(chuàng)建一個(gè)配置文件,我們將調(diào)用它nextflask,并將以下代碼添加到文件中:

/**
/etc/nginx/sites-available/nextflask
**/ 
server { server_name yourdomainname . com www 。你的域名。com ; 聽80 ;
?location / hello / { proxy_pass http://127.0.0.1:5000/hello/ ; proxy_http_version 1.1 ; proxy_set_header連接“升級(jí)”;proxy_set_header主機(jī)$host ; proxy_set_header升級(jí)$http_upgrade ; proxy_set_header X -真實(shí)- IP $remote_addr ; proxy_set_header X -轉(zhuǎn)發(fā)-對(duì)于$proxy_add_x_forwarded_for ;}位置/ { ?proxy_pass http://0.0.0.0:3000 ; proxy_http_version 1.1 ; proxy_set_header連接“升級(jí)”;proxy_set_header主機(jī)$host ; proxy_set_header升級(jí)$http_upgrade ; proxy_set_header X -真實(shí)- IP $remote_addr ; proxy_set_header X -轉(zhuǎn)發(fā)-對(duì)于$proxy_add_x_forwarded_for ;} } 

上面的 Nginx 配置將在根域上為您的 Next.js 應(yīng)用程序提供服務(wù),并在.yourdomainname.com``yourdomainname.com/api/hello


超過 20 萬開發(fā)人員使用 LogRocket 來創(chuàng)造更好的數(shù)字體驗(yàn)了解更多 →


添加此配置后,通過運(yùn)行以下命令啟動(dòng) Nginx:

sudo systemctl 啟動(dòng) nginx 。服務(wù)

這就是設(shè)置 Nginx 來為我們的 Flask API 和 Next.js 服務(wù)器提供服務(wù)。將 Flask 和 Next.js 代碼推送到服務(wù)器,安裝依賴項(xiàng),然后分別運(yùn)行它們。分享5個(gè)比較有趣獨(dú)特的網(wǎng)站,全是小眾寶藏級(jí)別,建議收藏起來備用!哦,等等,我們需要對(duì)它們進(jìn)行守護(hù)。

您可以使用Supervisor或Gunicorn來守護(hù) Flask 應(yīng)用程序,這兩種流行的 Python 應(yīng)用程序部署工具。

我們將在 Flask 中使用 Gunicorn,在 Next.js 中使用 PM2。

將 Flask API 和 Next.js API 作為服務(wù)運(yùn)行

讓我們從使用 Gunicorn 運(yùn)行 Flask API 開始。確保您的服務(wù)器上安裝了正常工作的 Python,然后創(chuàng)建一個(gè)虛擬環(huán)境來安裝 Gunicorn。

創(chuàng)建虛擬環(huán)境:

python3 - m venv 環(huán)境

然后,安裝 Gunicorn 和 Flask:

pip 安裝 gunicorn 燒瓶

設(shè)置 Gunicorn 以服務(wù)于 Flask 應(yīng)用程序

首先,在根目錄下創(chuàng)建一個(gè)文件。這將作為應(yīng)用程序的入口點(diǎn)。將以下代碼添加到文件中:wsgi.py

// wsgi . pyfrom hello import app如果__name__ == "__main__":應(yīng)用程序。運(yùn)行() 

接下來,為 Gunicorn 創(chuàng)建配置文件并將以下配置添加到其中:sudo vim /etc/systemd/system/hello.service

[單位]描述= Gunicorn實(shí)例服務(wù)于你好
之后=網(wǎng)絡(luò)。目標(biāo)[服務(wù)] User = ezeGroup = www - dataWorkingDirectory =/ path / to / your / app / directoryExecStart = / path / to / gunicorn / bin / gunicorn --workers 3 --bind unix :你好。襪子-m 007 wsgi :應(yīng)用程序[安裝] WantedBy =多用戶。_ 目標(biāo)

注意參考路徑。最后,通過在終端中運(yùn)行以下命令來啟動(dòng)并啟用 Gunicorn:

sudo systemctl start hello & sudo systemctl enable hello

要檢查操作是否成功,請(qǐng)運(yùn)行以下命令查看狀態(tài):

須藤系統(tǒng)控制狀態(tài)

如果一切順利,我們的 Flask 應(yīng)用程序應(yīng)該在端口500和根域中啟動(dòng)并運(yùn)行,.yourdomainname.com

使用 PM2 運(yùn)行 Next.js 應(yīng)用程序

PM2是 Node.js 應(yīng)用程序的進(jìn)程管理工具。要使用它,請(qǐng)使用以下命令全局安裝 PM2:

pm2 安裝- g pm2

接下來,在包含 Next.js 代碼的目錄中運(yùn)行此命令:

pm2 start "npm run start" --命名 nextapp 

您的 Next.js 應(yīng)用程序?qū)㈤_始在端口3000和根域中工作,.yourdomainname.com

恭喜!您已經(jīng)使用 Flask API 成功部署了 Next.js 前端。起初它可能看起來很復(fù)雜,但您不必在未來的部署中重復(fù)此過程,解析機(jī)器人App,支持國(guó)內(nèi)外短視頻平臺(tái)解析下載,支持下載音樂MV!因?yàn)檫@為您的應(yīng)用程序正常工作設(shè)置了基本環(huán)境。您可能只需要推送您的代碼并重新啟動(dòng)您的服務(wù)器,這可以通過您的CI/CD 管道進(jìn)行管理。

結(jié)論

新技術(shù)總是來來去去,現(xiàn)在可能是您選擇使用 Flask 部署 Next.js 以改進(jìn)應(yīng)用程序的一般工程的時(shí)候了。我希望你覺得這篇文章有幫助。

就個(gè)人而言,我有一個(gè)舊的 Flask API,但我想繼續(xù)使用 Next.js 進(jìn)行開發(fā),同時(shí)保留一些 Python 后端實(shí)現(xiàn)。我發(fā)現(xiàn)它很容易切換而不會(huì)中斷或破壞我現(xiàn)有的 API。文章來源地址http://www.zghlxwxcb.cn/news/detail-651974.html

到了這里,關(guān)于使用 Flask 部署 Next.js的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • python項(xiàng)目結(jié)構(gòu)示例(python代碼結(jié)構(gòu)、python目錄結(jié)構(gòu))與python部署結(jié)構(gòu)、python部署目錄、flask項(xiàng)目結(jié)構(gòu)、flask目錄

    myproject/ :項(xiàng)目的根目錄,也是Python包的根目錄。 myproject/__init__.py :一個(gè)空的 __init__.py 文件,用于將 myproject 目錄標(biāo)記為一個(gè)Python包。 myproject/module1.py 、 myproject/module2.py 等:項(xiàng)目的模塊文件,包含項(xiàng)目的核心代碼。 tests/ :測(cè)試目錄,包含用于測(cè)試項(xiàng)目代碼的測(cè)試文件。

    2024年02月12日
    瀏覽(99)
  • 使用寶塔面板部署flask環(huán)境

    使用寶塔面板部署flask環(huán)境

    之前部署采用編譯式,費(fèi)時(shí)又費(fèi)力,這次咱們采用簡(jiǎn)便的方法,就是采用寶塔面板進(jìn)行安裝。首先什么是寶塔面板呢,就是linux可視化管理工具,所以需要安裝一下,這里說一下centos系統(tǒng)的安裝 一、輸入如下命令 接下來等幾分鐘,等出現(xiàn)下面的畫面就是安裝完成了 其中user

    2024年02月02日
    瀏覽(24)
  • 使用Flask簡(jiǎn)單部署深度學(xué)習(xí)模型

    當(dāng)客戶端想要獲取資源時(shí),一般會(huì)通過瀏覽器發(fā)起HTTP請(qǐng)求。 此時(shí),Web服務(wù)器會(huì)把來自客戶端的所有請(qǐng)求都交給Flask程序?qū)嵗?程序?qū)嵗褂肳erkzeug來做路由分發(fā)(URL請(qǐng)求和視圖函數(shù)之間的對(duì)應(yīng)關(guān)系)。 根據(jù)每個(gè)URL請(qǐng)求,找到具體的視圖函數(shù)并進(jìn)行調(diào)用。在Flask程序中,路由的

    2023年04月25日
    瀏覽(28)
  • python Flask web項(xiàng)目uwsgi + nginx部署

    python Flask web項(xiàng)目uwsgi + nginx部署

    略 2.1安裝vertualenv 2.2創(chuàng)建虛擬環(huán)境 創(chuàng)建保存環(huán)境的目錄: 創(chuàng)建虛擬環(huán)境: 查看虛擬環(huán)境: 2.3激活虛擬環(huán)境 activiate是激活虛擬環(huán)境的命令腳本,在虛擬環(huán)境的bin目錄下 執(zhí)行activate激活環(huán)境 3.1安裝uwsgi 激活虛擬環(huán)境,安裝uwsgi 3.2基于uwsgi運(yùn)行flask項(xiàng)目 3.2.1命令的方式 3.2.2配置文

    2024年02月10日
    瀏覽(22)
  • 使用 docker 快速部署 flask接口服務(wù) 一

    使用 docker 快速部署 flask接口服務(wù) 一

    以前沒有使用過docker,近期需要使用部署自己的服務(wù),因此需要學(xué)習(xí),先從簡(jiǎn)單的使用起來,后面專門整理一篇 如何部署 模型的方法。 理論知識(shí)就不說了,網(wǎng)上很多,咱直接上步驟 整理邏輯分為: 基于dockerfile創(chuàng)建鏡像 使用 docker-compose 創(chuàng)建容器 后臺(tái)啟動(dòng) 當(dāng)然這些步驟完全

    2024年01月17日
    瀏覽(16)
  • 搭建部署屬于自己的基于gpt3.5的大語言模型(基于flask+html+css+js+mysql實(shí)現(xiàn))

    本項(xiàng)目是一個(gè)基于GPT-3.5模型的聊天機(jī)器人網(wǎng)站,旨在為用戶提供一個(gè)簡(jiǎn)便、直接的方式來體驗(yàn)和利用GPT-3.5模型的強(qiáng)大功能。項(xiàng)目以Flask為基礎(chǔ),構(gòu)建了一個(gè)完整的Web應(yīng)用程序,其中包含了多個(gè)前端頁面和后端API接口,能夠處理用戶輸入并與GPT-3.5模型進(jìn)行交互來生成響應(yīng)。 一

    2024年02月07日
    瀏覽(92)
  • 【小沐學(xué)Python】Python實(shí)現(xiàn)Web服務(wù)器(Flask打包部署上線)

    【小沐學(xué)Python】Python實(shí)現(xiàn)Web服務(wù)器(Flask打包部署上線)

    ??基于Python的Web服務(wù)器系列相關(guān)文章編寫如下??: ??【W(wǎng)eb開發(fā)】Python實(shí)現(xiàn)Web服務(wù)器(Flask快速入門)?? ??【W(wǎng)eb開發(fā)】Python實(shí)現(xiàn)Web服務(wù)器(Flask案例測(cè)試)?? ??【W(wǎng)eb開發(fā)】Python實(shí)現(xiàn)Web服務(wù)器(Flask部署上線)?? ??【W(wǎng)eb開發(fā)】Python實(shí)現(xiàn)Web服務(wù)器(Tornado入門)?? ??【W(wǎng)eb開

    2024年02月12日
    瀏覽(91)
  • fastdeploy部署多線程/進(jìn)程paddle ocr(python flask框架 )

    fastdeploy部署多線程/進(jìn)程paddle ocr(python flask框架 )

    部署參考:https://github.com/PaddlePaddle/FastDeploy/blob/develop/tutorials/multi_thread/python/pipeline/README_CN.md 安裝 cpu: pip install fastdeploy-python gpu : pip install fastdeploy-gpu-python 命令: 多線程 多進(jìn)程 文件:multi_thread_process_ocr.py 原始代碼:270行 修改為如下,去掉1 因?yàn)榘惭b包不對(duì),fastdeploy與

    2024年02月11日
    瀏覽(37)
  • Jenkins參數(shù)化構(gòu)建項(xiàng)目(Git+docker部署+Python+flask項(xiàng)目)

    Jenkins參數(shù)化構(gòu)建項(xiàng)目(Git+docker部署+Python+flask項(xiàng)目)

    使用 Jenkins 進(jìn)行 CI/CD 自動(dòng)化部署,參數(shù)化構(gòu)建 Git 代碼拉取, docker 鏡像打包, docker 部署 flask 項(xiàng)目一體化流程。 準(zhǔn)備工作:jenkins平臺(tái)部署、項(xiàng)目部署服務(wù)器docker安裝(這里也可以直接使用jenkins直接部署) 服務(wù)器 IP地址 備注 Jenkins 192.168.2.143 docker部署Jenkins 部署服務(wù)器 192.168

    2024年03月10日
    瀏覽(39)
  • 將Python項(xiàng)目(Flask)打包成Docker鏡像,部署到微軟云---Azure

    將Python項(xiàng)目(Flask)打包成Docker鏡像,部署到微軟云---Azure

    前情提要:首先創(chuàng)建一個(gè)簡(jiǎn)單的Flask項(xiàng)目,參考上一篇文章 鏈接: 將 Python (Flask) Web應(yīng)用部署到Azure應(yīng)用服務(wù) 下載鏈接:Install Docker Desktop on Windows 如果出現(xiàn)以上彈窗,點(diǎn)擊鏈接,安裝Linux 內(nèi)核更新包 運(yùn)行下載的更新包(系統(tǒng)將提示你提供提升的權(quán)限,選擇“是”以批準(zhǔn)此安裝

    2024年02月09日
    瀏覽(36)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包