Виртуальные каталоги для проекта Flask, указывающие на другой проект, размещенный отдельно - PullRequest
0 голосов
/ 27 октября 2018

У меня есть проект Flask, и я хотел бы интегрировать в него какой-нибудь сторонний сервис, например блог Wordpress (который написан на PHP и не может быть интегрирован в проект Flask). Этот сервис может иметь поддомен на их или на нашем хостинге. Но идея состоит в том, чтобы организовать этот сервис как подпапку моего проекта.

Я знаю, что в ASP.Net легко создать виртуальный каталог и назначить весь проект, который можно разместить в любом месте. Но я не знаю, возможно ли это сделать с помощью Flask и как это сделать.

Подведем итог:

www.myproject.com / блог должен фактически указывать на blog.myproject.com или myproject.wordpress.com

Это не просто маршрут в одном проекте!

Сторонний сервис размещается совершенно отдельно и не имеет никакого отношения к моему сервису, он даже может быть написан на каком-то другом языке или в фреймворке.

ПОЖАЛУЙСТА, не отмечайте этот вопрос как дубликат Добавьте префикс ко всем маршрутам Flask , он не имеет к этому никакого отношения.

1 Ответ

0 голосов
/ 27 октября 2018

Колба может сделать это, но это будет очень уродливо и тяжело.Так как вам нужно перенаправить все запросы на /blog/* на upstream blog.project.com/* и вернуть результат пользователю.Это должно быть что-то вроде:

@app.route('/blog/<sub_request>')
def redirect_to_blog(sub_request):
    res = requests.get(urljoin(blog_base, sub_request))
    return res.content

Как правило, вы даже не должны думать об этом.На самом деле это очень распространенный сценарий для nginx.Вы должны использовать nginx в качестве обратного прокси-сервера и управлять всеми поддоменами.В этом случае вы можете легко достичь желаемого.

Или, скажем, это также очень распространенный сценарий для apache2.Который является сервером вашего блога Wordpress.Вы должны использовать apache2 для управления вашим проектом колбы.Вместо использования проекта фляги для управления apache2 сервером.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...