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

資訊專欄INFORMATION COLUMN

flask筆記:部署flask

Kylin_Mountain / 2519人閱讀

摘要:網上有很多種發布部署的方式,這里我使用的是發布。但當我部署成功后,我發現了一個問題。再說回問題當我用的命令啟動服務時,發現的正則表達式的路徑轉發規則發生了問題。導致訪問地址發生跳轉不正常和錯誤的現象。,下面說回正題,介紹如何部署。

網上有很多種發布部署flask的方式,這里我使用的是Gunicorn、nginx發布flask。

先說明一下為什么不使用supervisor,之前我也是按照一些文章中的推薦采取nginx、gunicorn和supervisor的方式部署。但當我部署成功后,我發現了一個問題。

寫到這里先介紹一下supervisor是什么:網上正規的解釋為supervisor是linux進程管理的工具。而我將其理解為其對gunicorn命令封裝后的工具(當然不只是針對gunicorn,像nginx也可以用其管理,這里是為了方便理解)。

如果用supervisor啟動flask,那么可以看成:supervisor調用gunicorn把flask的服務啟動。

再說回問題:當我用supervisor的命令啟動服務時,發現nginx的正則表達式的url路徑轉發規則發生了問題。導致訪問url地址發生跳轉不正常和404錯誤的現象。當然錯誤的原因不排除我安裝配置的原因,這里不做詳細的解釋,只是我沒有解決其問題。但就像之前介紹的supervisor只是對進程的管理工具(也可以理解為對gunicorn命令的封裝),并不對服務本身有什么影響,只是日常啟動、重啟、停止服務時命令行多了一些而已罷了。

ok,下面說回正題,介紹如何部署flask。

1.安裝python、virtualenv、flask、nginx

這些前置工作這里就不介紹了,網絡上有很多文檔和詳細的步驟可以參考。

2.創建項目

創建一個文件夾test,在該文件夾創建test.py文件

mkdir test
cd test
touch test.py

編寫一個簡單的例子

#encoding:utf-8

from flask import Flask

app = Flask(__name__)

@app.route("/")
def index():
    return "hello woody"

@app.route("/test/")
def test():
    return "test"

@app.errorhandler(404) 
def page_not_found(error): 
    return "sorry that is my 404"

#if __name__ == "__main__":
#    app.run(host="0.0.0.0",port=5000,debug=True)
3.安裝gunicorn

最新版的virtualenv自帶了gunicorn,如果沒有,請在虛擬環境手動安裝

 pip install gunicorn
4.啟動flask

進入剛創建的項目文件夾下,用命令行啟動

cd test
gunicorn -w2 -b0.0.0.0:9016 test:app
-w指的是worker(啟動的進程),后面跟的數字是worker的數量

-b指的是bind(綁定ip),后面是ip:port地址和端口號,0.0.0.0代表所有地址

test指的是入口文件的文件名

app指的是入口文件中Flask()對象的變量名,這里上面的程序中是app

注:如果想靜默啟動(后臺啟動),可以在后面加個 -D 的參數

gunicorn -w2 -b0.0.0.0:9016 test:app -D
5.nginx配置
location /api/ {
    proxy_pass http://127.0.0.1:9016/;
    #proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44566.html

相關文章

  • Python學習筆記:Web后端開發一覽

    摘要:試想,在多線程服務器中,多個線程同時處理不同客戶端發送的不同請求時,每個線程看到的對象必然不同。多線程服務器會創建一個線程池,再從線程池中選擇一個線程用于處理接收到的請求。 框架 Django flask flask是一個輕量的web開發應用示例開發一個小應用 from flask import Flask app = Flask(__name__) @app.route(/) d...

    DrizzleX 評論0 收藏0
  • 我的第一本 gitbook: Flask Web 開發筆記

    摘要:月份發布了第版,收到不少網友的良好建議,所以又抽空進行了完善,當然也拖了不少時間。本書主要介紹的基本使用,這也是我一開始在學習過程中經常用到的。第章實戰,介紹了如何開發一個簡單的應用。聲明本書由編寫,采用協議發布。 showImg(https://segmentfault.com/img/remote/1460000007484050?w=200&h=152); 書籍地址 head-f...

    KevinYan 評論0 收藏0
  • Web 開發學習筆記(4) --- 重定向與HSTS

    摘要:回顧通過前幾篇文章的內容我們已經搭建了基于框架的一個簡單的應用的代碼如下此外我們還為其申請了公網和域名并且部署了的證書現在當我們在瀏覽器地址欄輸入即可訪問我們的網站不過我們的網站目前還存在幾個問題無法訪問每次都需要用戶手動輸入前綴以制定形式 回顧 通過前幾篇文章的內容, 我們已經搭建了基于 Flask 框架的一個簡單的 Web 應用, server.py 的代碼如下 from f...

    kevin 評論0 收藏0
  • 如何在 virtualenv 環境下搭建 Python Web

    摘要:生產環境下,自帶的服務器,無法滿足性能要求。配置前面我們已經在系統環境下安裝了安裝好的二進制文件放在文件夾下,接下來使用來管理。參考文章探針安裝部署部署筆記在生產環境上部署使用詳解本文系工程師編譯整理。 由于字數的限制,其實本篇文章的全標題為 《如何在 virtualenv 環境下 Django + Nginx + Gunicorn+ Supervisor 搭建 Python Web》...

    roland_reed 評論0 收藏0
  • 如何在 virtualenv 環境下搭建 Python Web

    摘要:生產環境下,自帶的服務器,無法滿足性能要求。配置前面我們已經在系統環境下安裝了安裝好的二進制文件放在文件夾下,接下來使用來管理。參考文章探針安裝部署部署筆記在生產環境上部署使用詳解本文系工程師編譯整理。 由于字數的限制,其實本篇文章的全標題為 《如何在 virtualenv 環境下 Django + Nginx + Gunicorn+ Supervisor 搭建 Python Web》...

    godiscoder 評論0 收藏0

發表評論

0條評論

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