搭建部署flask到伺服器
① 求助,用flask搭android伺服器
最近這些年,REST已經成為web services和APIs的標准架構,很多APP的架構基本上是使用RESTful的形式了。 本文將會使用python的Flask框架輕松實現一個RESTful的服務。 REST的六個特性: Client-Server:伺服器端與客戶端分離。 Stateless(無狀態
② python輕量框架--Flask(入門教程)
1.建立: F:Pythonflask文件夾路徑
2.安裝virtualenv,在此路徑下打開命令行窗口輸入:
3.新建一個目錄,並在里邊創建virtualenv環境,在DOS下
如圖:
這時你創建的myproject文件夾裡面就多了一個venv文件夾:
4.激活虛擬環境
現在命令行前面多了個(venv)表示你在venv環境內
5.在virtualenv里安裝Flask
完成。如圖:
6.驗證是否安裝,你可以進入 Python 解釋器,嘗試導入 Flask:
如果沒有報錯,那麼就安裝成功了~如圖:
1.在myproject文件夾下打開命令行:
cd app #進入app文件夾
mkdir static
mkdir templates
我們的應用程序包是放置於 app 文件夾中。子文件夾 static 是我們存放靜態文件像圖片,JS文件以及樣式文件。子文件夾 templates 顯然是存放模板文件。
2.為我們的 app 包(文件 app/ init .py )創建一個簡單的初始化腳本:
上面的腳本簡單地創建應用對象,接著導入視圖模塊,該模塊我們暫未編寫。
視圖是響應來自網頁瀏覽器的請求的處理器。在 Flask 中,視圖是編寫成 Python 函數。每一個視圖函數是映射到一個或多個請求的 URL。
3.讓我們編寫第一個視圖函數(文件 app/views.py ):
其實這個視圖是非常簡單,它只是返回一個字元串,在客戶端的網頁瀏覽器上顯示。兩個 route 裝飾器創建了從網址 / 以及 /index 到這個函數的映射。
4.能夠完整工作的 Web 應用程序的最後一步是創建一個腳本,啟動我們的應用程序的開發 Web 伺服器。讓我們稱這個腳本為 run.py,並把它置於根目錄:
這個腳本簡單地從我們的 app 包中導入 app 變數並且調用它的 run 方法來啟動伺服器。請記住 app 變數中含有我們在之前創建的 Flask 實例。
5.要啟動應用程序,您只需運行此腳本(run.py)
如圖:
6.在伺服器初始化後,它將會監聽 5000 埠等待著連接。現在打開你的網頁瀏覽器輸入如下 URL:
另外你也可以使用這個 URL:
你看清楚了路由映射是如何工作的嗎?第一個 URL 映射到 /,而第二個 URL 映射到 /index。這兩個路由都關聯到我們的視圖函數,因此它們的作用是一樣的。如果你輸入其它的網址,你將會獲得一個錯誤,因為只有這兩個 URL 映射到視圖函數。
你可以通過 Ctrl-C 來終止伺服器
入門就到這里,比較簡單的。
下一章:
python輕量框架--Flask(模板詳細版)
③ 如何把css,js文件發布到伺服器上flask
flask的靜態文件是位於應用的 /static 中的
你可以直接在html模板中引用該路徑,如下:
<link href="/static/css/demo.css" rel="stylesheet" type="text/css" />
url_for 構造路徑
當然,也可使用 url_for 構造,代碼如 url_for("static",filename="css/demo.css")
更改上述代碼及模板文件,再次運行並查看
④ 阿里雲伺服器部署flask項目
當我們執行下面的hello.py時,使用的flask自帶的伺服器,完成了web服務的啟動。在生產環境中,flask自帶的伺服器,無法滿足性能要求,我們這里採用Gunicorn做wsgi容器,來部署flask程序。Gunicorn(綠色獨角獸)是一個Python WSGI的HTTP伺服器。從Ruby的獨角獸(Unicorn )項目移植。該Gunicorn伺服器與各種Web框架兼容,實現非常簡單,輕量級的資源消耗。Gunicorn直接用命令啟動,不需要編寫配置文件,相對uWSGI要容易很多。
區分幾個概念 :
WSGI:全稱是Web Server Gateway Interface(web伺服器網關介面),它是一種規范,它是web伺服器和web應用程序之間的介面。它的作用就像是橋梁,連接在web伺服器和web應用框架之間。
uwsgi:是一種傳輸協議,用於定義傳輸信息的類型。
uWSGI:是實現了uwsgi協議WSGI的web伺服器。
我們的部署方式: nginx + gunicorn + flask
web開發中,部署方式大致類似。簡單來說,前端代理使用Nginx主要是為了實現分流、轉發、負載均衡,以及分擔伺服器的壓力。Nginx部署簡單,內存消耗少,成本低。Nginx既可以做正向代理,也可以做反向代理。
正向代理 :請求經過代理伺服器從區域網發出,然後到達互聯網上的伺服器。
特點 :服務端並不知道真正的客戶端是誰。
反向代理 :請求從互聯網發出,先進入代理伺服器,再轉發給區域網內的伺服器。
特點 :客戶端並不知道真正的服務端是誰。
區別 :正向代理的對象是客戶端。反向代理的對象是服務端。
查看命令行選項 : 安裝gunicorn成功後,通過命令行的方式可以查看gunicorn的使用信息。
直接運行 :
指定進程和埠號 : -w: 表示進程(worker)。 -b:表示綁定ip地址和埠號(bind)。--access-logfile:表示指定log文件的路徑
作為守護進程後台運行 :
阿里雲伺服器默認安裝到 /user/sbin/ 目錄,進入目錄,啟動 ngnix:
Ubuntu 上配置 Nginx 也是很簡單,不要去改動默認的 nginx.conf 只需要將/etc/nginx/sites-available/default文件替換掉就可以了。
新建一個 default 文件,添加以下內容:
修改完成後重啟nginx即可。
Ubuntu 上配置 Nginx 另一種方法,cd 到 /etc/nginx/conf.d 文件夾,新建 xxx.conf 文件(xxx 可以是項目名,只要是 .conf 文件即可),寫入以下內容:
需要監聽 https 請求時,寫入以下內容: