У меня есть настройка сервера Apache, и он обрабатывает ответы Flask через mod_wsgi. Я зарегистрировал WSGI script через псевдоним:
[httpd.conf]
WSGIScriptAlias /service "/mnt/www/wsgi-scripts/service.wsgi"
Я добавил соответствующий файл WSGI по указанному выше пути:
[/мнт/WWW/WSGI-скрипты/service.wsgi]
import sys
sys.path.insert(0, "/mnt/www/wsgi-scripts")
from service import application
И у меня есть простой тест Flask Python script, который предоставляет сервисный модуль:
[/мнт/WWW/WSGI-скрипты/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 [hostname]/service, он работает так, как ожидалось, и я получаю "Hello World!". назад. Проблема в том, что я не знаю, как использовать другие маршруты, например, "upload" в приведенном выше примере. Это отлично работает в автономной Flask, но в mod_wsgi я в тупике. Единственное, что я могу себе представить, - зарегистрировать отдельный URL-адрес WSGI script в httpd.conf для каждой конечной точки, которую я хочу, но это отвлекает поддержку флеш-маршрутизации. Есть ли способ сделать эту работу?