我有我的Apache服務器的設置,它是通過處理的mod_wsgi瓶響應。我已經通過該別名註冊的WSGI腳本:如何在Apache和mod_wsgi中使用Flask路由?
[httpd.conf中]
WSGIScriptAlias /service "/mnt/www/wsgi-scripts/service.wsgi"
我已經添加了相應的WSGI文件在上述路徑:
[/ MNT /網絡/ WSGI的腳本/ service.wsgi]
import sys
sys.path.insert(0, "/mnt/www/wsgi-scripts")
from service import application
而且我有一個簡單的測試瓶Python腳本,所提供的服務模塊:
[/mnt/www/wsgi-scripts/service.py]
from flask import Flask
app = Flask(__name__)
@app.route('/')
def application(environ, start_response):
status = '200 OK'
output = "Hello World!"
response_headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]
@app.route('/upload')
def upload(environ, start_response):
output = "Uploading"
status = '200 OK'
response_headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]
if __name__ == '__main__':
app.run()
當我去我的網站URL [主機名] /服務能夠正常運行,我得到的 「Hello World!」背部。問題是我不知道如何讓其他路線工作,如上例中的「上傳」。這在獨立燒瓶中正常工作,但在mod_wsgi下我很難過。我能想象的唯一事情就是爲每個我想要的端點在httpd.conf中註冊一個單獨的WSGI腳本別名,但這會帶走Flask的奇特路由支持。有沒有辦法做到這一點?
你試過瀏覽到'/ service/upload'嗎?你可能會感到驚喜。 – 2012-03-13 08:28:19
當我打/ /服務/上傳請求仍然被髮送到'應用程序'功能。實際上,我可以在應用程序功能之前刪除路由語句,它仍然有效。這就像應用程序總是被mod_wsgi用作應用程序的入口點。感覺就像我需要在'應用程序'裏面做一些啓動Flask路由邏輯的事情。 – 2012-03-13 14:52:33