Задать вопрос
@Lord_Prizrak
Программист, электронщик

Как сделать множество сайтов на одном Flask приложении?

Подскажите как можно сделать множество разных сайтов, с практически одинаковым функционалом, но совершенно разным оформлением на одном приложении написанном с помощью Flask?
Т.е. пишется, что-то вроде CMS и используется для примерно 10 сайтов, на одном VPS.

UPD: Я пока делаю так: Взял диспетчер запросов из документации Flask (есть там такое).
Скрипт сканирует ниже лежащие директории, и если находит в них конфиг, то для каждой директории создаёт экземпляр приложения с настройками указанными в файле, при этом указываются переменные: root_path, instance_path, template_folder, static_folder.
Дальше список экземпляров передаётся в диспетчер, который и выбирает по параметру host в запросе какому приложению передать запрос дальше.
  • Вопрос задан
  • 2533 просмотра
Подписаться 1 Оценить 2 комментария
Решения вопроса 1
@pcdesign
У меня была схожая задача.
Решил ее вот так:
@app.before_request
def before_request():
    sitename = db = ""
    if request.headers['Host'] in 'www.example1.com':
        sitename = 'example1.com'
        db = 'example1_com'
    elif request.headers['Host'] in 'www.example2.com':
        sitename = 'example2.com'
        db = 'example2_com'	
    else:
        sitename = 'test.com'
        db = 'test_com'
     # И т.д.
     app.jinja_env.globals['sitename'] = sitename


Ну то есть разруливание было на уровне @app.before_request.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@evgenusov
Так и есть же шаблоны? Просто сделай переменную с путями к разным шаблонам и все.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы