簡體   English   中英

IIS 到主機 python CherryPy API

[英]IIS to host python CherryPy API

我正在尋找鏈接 IIS 和 Cherrypy 的解決方案。

我想對 Cherrypy 進行此操作的具體解釋,因為所有其他應用程序都適用於 flask 和 django 等其他應用程序。

我可以通過調用函數 getHeight 和 getWidth

使用調用http://0.0.0.0:8080/getHeight

import cherrypy
import tileProvider
import time


class MyWebService(object):
    provider = TileProvider('myPicture.JPEG')
    @cherrypy.expose
    def getHeight(self):
        return str(MyWebService.provider.getHeight())

    @cherrypy.expose
    def getWidth(self):
        return str(MyWebService.provider.getWidth())


if __name__ == '__main__':
    IPv4 = socket.gethostbyname(socket.gethostname())
    config = {'server.socket_host': IPv4,
              'server.socket_port': 8080}
    cherrypy.config.update(config)
    cherrypy.quickstart(MyWebService())

那么現在如何創建相同的東西,除了從 IIS 托管而不是 CherryPy 內置的 WebServer。

有沒有人有任何有用的指示或鏈接供我遵循?

要在 iis 中配置 Cherrypy 應用程序,您可以按照以下步驟操作:

1.運行以下命令安裝cherrypy

pip install cherrypy

2.安裝wfastcgi並啟用它:

pip install wfastcgi

fastcgi-enable

3.啟用 iis cgi 功能。

在此處輸入圖像描述

4.在 iis 中使用您的 Cherrypy 應用程序路徑添加站點

在此處輸入圖像描述

5.select 您的站點名稱,然后從中間窗格雙擊 iis 的處理程序映射功能。

在此處輸入圖像描述

6.in handler mapping select 從操作面板添加模塊映射。

在此處輸入圖像描述

可執行路徑值:C:\Python37-32\python.exe|C:\Python37-32\Lib\site-packages\wfastcgi.py

C:\Python37-32 是您的 python 路徑。

7.現在 go 反復 select 服務器名稱和 select 從中間窗格快速 CGI 設置。 雙擊它,然后單擊 Environment Variables 集合的“...”以啟動 EnvironmentVariables Collection Editor:

在此處輸入圖像描述

8.設置PYTHONPATH變量(你的cherrypy應用文件夾路徑):

在此處輸入圖像描述

9.還有 WSGI_HANDLER(我的應用程序名為 app.py,因此值為 app.wsgiapp - 如果您的應用程序名為 site.py,則為 site.app.wsgiapp 或類似名稱):

在此處輸入圖像描述

配置更改后,您可能必須重新啟動服務器和網站。

確保您使用管理員用戶之一運行應用程序池標識,或者如果它使用應用程序池標識運行,請確保您提供對站點文件夾 C:\cherryapp 和 python 文件夾 Z0D61F8370CAD171D412F80B84D3 的完全權限分配 iis_iusrs 和 iusr 權限。

在此處輸入圖像描述

應用程序.py:

import cherrypy



class Root:

    @cherrypy.expose

    def index(self):

        return 'Hello CherryPy!'



    @cherrypy.expose

    def greet(self, name):

        return 'Greetings, {0}'.format(name)



url_prefix = '/cherrypy'



cherrypy.config.update({'engine.autoreload.on': False})

cherrypy.server.unsubscribe()

cherrypy.engine.start()



wsgiapp = cherrypy.tree.mount(Root(), url_prefix)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM