1. 程式人生 > >Windows下部署Flask的Web服務

Windows下部署Flask的Web服務

概述

Flask提供了輕量級的Web服務,方便我們開發和除錯,但是實際部署的時候,卻不能直接用Flask釋出應用,還需要Web服務和WSGI(web服務閘道器介面)。Flask更多是作為Web Framework,而不是Web Server

我們用一個圖來理解“web伺服器,web框架與 WSGI ”之間的關係:
這裡寫圖片描述

Web伺服器層。Web伺服器的主要作用就是接收請求 、處理請求、返回響應。比如:Nginx,Apache,IIS等。

Web框架層。Web框架的作用主要是方便我們開發 web應用程式,HTTP請求的動態資料就是由 web框架層來提供的。比如:Django、Flask等。

WSGI層。WSGI 不是伺服器,也不是用於與程式互動的API,只是一種介面,它只適用於 Python 語言,其全稱為 Web Server Gateway Interface,定義了 web伺服器和 web應用之間的介面規範。也就是說,只要 web伺服器和 web應用都遵守WSGI協議,那麼 web伺服器和 web應用就可以隨意的組合。

大概介紹到這兒,下面還是說具體的搭建步驟。

先劃重點(這個是造成無數人部署失敗的核心):

mod_wsgi 版本、Apache 版本、Windows 環境、 Python 的版本要一一匹配

1、準備資源

  • Python
  • Apache
  • mod_wsgi
  • Flask

2、 安裝Python

如何判斷python版本和vc版本關係呢:
安裝完成後命令提示符下輸入:

Python 

就可以看到對應的 v.1900

Visual C++ 2005  (8.0)          MSC_VER=1400
Visual C++ 2008  (9.0)          MSC_VER=1500
Visual C++ 2010 (10.0)          MSC_VER=1600
Visual C++ 2012 (11.0)          MSC_VER=1700
Visual C++ 2013 (12.0)          MSC_VER=1800
Visual C++ 2015 (14.0) MSC_VER=1900 Visual C++ 2017 (15.0) MSC_VER=1910

這樣,我們就知道,Python3.6.5 對應VC 2015,這個在後面要用到.

3、安裝Web服務

這裡寫圖片描述

選擇對應VC2015、64位的版本下載。

將壓縮包下載到本機,解壓到需要的目錄:

D:\Apache24

啟動服務
這裡寫圖片描述

這裡寫圖片描述

這樣,apache就執行成功了

4、安裝mod_wsgi

把下載的.whl檔案複製到python\Scripts下使用
用pip進行安裝

pip3 install "mod_wsgi-4.5.15+ap24vc14-cp36-cp36m-win_amd64.whl"  

進行安裝在安裝成功後在python的安裝目錄的\scripts資料夾下執行

mod_wsgi-express module-config

這裡寫圖片描述

然後拷貝到http.conf 中,新增到其他的 loadmodule後。

重新啟動Apache
沒有報錯則表示 mod_wsgi 模組在載入成功了。

注:很多教程都是用的mod_wsgi.so,但是已經找不到對應的版本的了。

5、建立Web例子

安裝Flask

pip install Flask

建立Flask例子

from flask import Flask

app = Flask(__name__)

@app.route('/hello')
def hello():
    return 'Hello Flask'

if __name__ == '__main__':
    app.run()

建立wsgi檔案

import sys

#app's path
sys.path.insert(0,"E:/pyWork/testweb")

from testweb import app

#Initialize WSGI app object
application = app

6、修改apache配置

開啟 httpd.conf 檔案,在最後新增虛擬環境:

<VirtualHost *>
    ServerName example.com
    WSGIScriptAlias / E:\pyWork\testweb\testweb.wsgi
    <Directory E:\pyWork\testweb\>
        Require all granted
    </Directory>
</VirtualHost>

注:可以啟用自動過載,一旦.wsgi檔案有所變動,mod_wsgi就會自動重新轉入所有守護程序。在Dircetor一節加入以下指令就可以實現自動過載:

WSGIScriptReloading On

重啟apache,然後輸入url地址訪問:
http://localhost/hello
這裡我們看到的就是flask專案中的資源內容了。
這裡寫圖片描述

相關推薦

windows 部署 tomcat服務,不能在本地計算機中起動Tomcat參考特定錯誤程式碼4

因為專案需要在一臺windows伺服器中部署兩個獨立的tomcat服務(推薦部署教程http://blog.csdn.net/qq_38042891/article/details/78926994),部署第一臺非常順利,第二臺,讓我搞了1天,一直報 讓我搞的頭都大了, 原來是我一

windows部署Redis 當作系統服務器自動啟動

http alt 分享 all 系統 bubuko ins windows 自動啟動 部署Redis 其實Redis是可以安裝成windows服務的,開機自啟動,命令如下: redis-server --service-install redis.windows.co

利用Syslog Watcher在windows部署syslog日誌服務

data -c div ica gdi onexit 軟件 可靠 lis 1.概述 syslog協議是各種網絡設備、服務器支持的網絡日誌記錄標準。Syslog消息提供有關網絡事件和錯誤的信息。系統管理員使用Syslog進行網絡管理和安全審核。 通過專用的syslog服務器和

Windows部署Flask的Web服務

概述 Flask提供了輕量級的Web服務,方便我們開發和除錯,但是實際部署的時候,卻不能直接用Flask釋出應用,還需要Web服務和WSGI(web服務閘道器介面)。Flask更多是作為Web Framework,而不是Web Server。 我們用一個圖來

Rsyslog+Loganalyer+MySQL部署日誌服務

rsyslog 日誌 Rsyslog+Loganalyer+MySQL下部署日誌服務器準備工作(三臺Centos服務器Centos7):MySQL服務器(192.168.1.70):收集儲存管理日誌web/Rsyslog服務器(192.168.1.52):搭建httpd服務,提供在web端查看日誌信息

Windows搭建Redis服務

targe 文件夾 cnblogs 成功 tps cache ase view tar Redis服務器是當下比較流行的緩存服務器,Redis通常被人拿來和Memcached進行對比。在我看來,應當是各具優勢吧,雖然應用場景基本類似,但總會根據項目的不同來進行不通的選用。

windows部署icescrum

b- load 軟件 提示 file html timeout app ont 軟件151 盧煒傑 一、安裝JDK 1、下載JDK 地址:http://www.oracle.com/technetwork/java/javaee/downloads/index.htm

WindowsMongodb以服務形式啟動的方法

echo 方法 自己 驗證 etc mon 日誌 麻煩 服務器 這兩周做網站,自己搞定了服務器、數據庫和前端,接觸的知識非常多,為了防止以後忘記,特此記錄一下。 這篇隨筆主要記錄了Mongodb以服務形式啟動的方法。 1.mongodb的啟動參數 (1)指定mongodb的

Windows當地RabbitMQ服務的安裝

frame download mlu all 以及 銷毀 number 接受 sign Windows下本地RabbitMQ服務的安裝 本文參考:劉若澤相關技術文檔 當然這些內容頁可以通過RabbitMQ官方網站獲得。 RabbitMQ配置說明手冊 一、Rai

windows配置mongodb服務

mongodb安裝在bin目錄同級目錄下創建文件mg.conf並寫如以下內容:dbpath=D:\Program Files\MongoDB\Server\3.2\data #數據庫路徑 logpath=D:\Program Files\MongoDB\Server\3.2\logs\mongo.log #

windows部署Hadoop2.7.4

windows hadoop一、環境 windows 7 64bit jdk 1.8 hadoop 2.7.4 下載地址:http://hadoop.apache.org/releases.html二、步驟 1)下載並安裝jdk,,記得設置好JAVA_HOME系統環

windows搭建seafile服務器,擁有自己的個人雲盤,不再擔心網盤丟

seafile個人雲盤1、 下載所需環境、軟件(Python 2.7.11 32 位版本)註意:一定要使用 Python 2.7.11 32 位版本。64 位版本或不是 2.7.11 的版本不能工作。2、雙擊安裝python-2.7.11,一直next知道完成。配置python環境變量:右擊這臺電

Linux部署Samba服務環境的操作記錄

command 解決辦法如下 some var sco most get -c can 關於Linux和Windows系統之間的文件傳輸,很多人選擇使用FTP,相對較安全,但是有時還是會出現一些問題,比如上傳文件時,文件名莫名出現亂碼,文件大小改變等問題。相比較來說,使

轉 【MQTT】在Windows搭建MQTT服務

代碼 教程 userdata 圖片 ... 程序 password 命令 pass MQTT簡介 MQ 遙測傳輸 (MQTT) 是輕量級基於代理的發布/訂閱的消息傳輸協議,設計思想是開放、簡單、輕量、易於實現。這些特點使它適用於受限環境。該協議的特點有: 使用發布/訂閱

windows部署Tomcat8

windows tomcat系統環境:Windows Server 2012 R21 安裝JDK環境,推薦exe方式安裝;2 安裝apache-tomcat-8.5.31-windows-x64,直接解壓即可;3 設置相關環境變量;  添加系統變量:JAVA_HOME的值為:C:\Program Files\

windows部署包含C3P0的war包沒問題,部署到linux面的tomcatC3P0報錯

error: factor enc etc back from pool event 原因 錯誤原因:20-Jun-2018 19:44:27.353 INFO [localhost-startStop-1] org.apache.catalina.core.Applica

rhel6.5環境部署nginx服務

grep pre 占用率 進行 config figure 測試 make scrip 介紹 Nginx是一款相當優秀的用於部署動態網站的輕量級服務程序,它最初是為俄羅斯門戶站點而開發的,因其穩定性、功能豐富、占用內存少且並發能力強而備受用戶信賴。Nginx服務程序的穩定

(一)Windows安裝RabbitMQ服務

百度網盤 http lang gin 配置 ble localhost 語言 load 一:安裝RabbitMQ需要先安裝Erlang語言開發包,百度網盤地址:http://pan.baidu.com/s/1jH8S2u6。直接下載地址:http://erlang.org/

Redhat7.0部署NFS服務

mage 防火 watermark firewall udp ffffff dea 安裝 color 一、安裝NFS服務 1、查看系統是否已安裝NFS2、安裝NFS 二、服務端配置 在NFS服務端上創建共享目錄/data/lys並設置權限編輯export文件配置生效啟動rp

Solr——Windows部署Solr7.5.0至jetty、Tomcat

title 自己 管理 add image win 3.1 之前 png Solr6用默認的Jetty啟動 需要的軟件支持 JDK1.8以上 Solr6的安裝包(solr-7.5.0.zip ) Solr自帶一個Jetty環境,可以很方便的運