Организация проекта "Фляга/бутылка"

Я изучал микрофреймы для Python и нашел два интересных варианта: Flask и Bottle. каждый из них имеет некоторые аналогичные функции. Одна вещь, которую я заметил, это то, что все примеры сайтов отображают весь код приложения, расположенный внутри одного файла Python. Очевидно, что даже для сайтов с умеренным размером это будет довольно сложно управлять довольно быстро. Поддерживает ли (или оба) поддержку этих фреймворков среди разных файлов, и если да, то как это будет выполнено?

Я знаком с Django и люблю, как он немного структурирован, но я бы предпочел использовать что-то более легкое, но все же мощное.

Ответ 1

У меня нет опыта работы с Bottle, но посмотрите на Flask docs в больших приложениях. Приложения My Flask используют несколько объектов Flask Module, которые рекомендует эта страница, по одному на модуль Python, и, похоже, это работает нормально.

Одна вещь, которая хорошо относится к объектам Module, заключается в том, что вы можете настроить отправку на каждом из них, чтобы создать "домены" маршрутизации URL-адресов в вашем приложении. Например, я пытаюсь использовать приложение Windows в каком-то из моего кода, поэтому у меня есть CaseInsensitiveModule, который делает нечувствительную к регистру отправку, и я настроил RemoteModule, чтобы превратить HTTP-запросы в методы Python, используя Flask/Werkzeug.

(Обратите внимание, что в текущих версиях Flask Module теперь Blueprint s.)

Ответ 2

Я не вижу, как может быть какой-то способ остановить это от работы. Flask and Bottle, как и Django, - это всего лишь Python, а Python позволяет разбить файлы на модули. Пока вы импортируете соответствующие функции в основной script, они будут работать точно так, как если бы они были определены там.

Ответ 3

Я знаю, что некоторые люди начали использовать мою собственную статью для этого с Flask, хотя, очевидно, есть другие способы сделать это в зависимости от размера проекта; даже я отбрасываю модуль типа каталога для файла, основанного на меньших проектах. Посмотрите http://www.cols-code-snippets.co.uk/2011/02/my-take-on-flask-application-skeleton.html

Ответ 4

Недавно я опубликовал своего рода учебник о том, как начать работу с Bottle + Jinja2 в Google App Engine. Мой акцент здесь делается на том, как организовать файлы проекта. Вы можете получить что-то, что вы можете использовать: http://codeaspoetry.wordpress.com/2011/11/27/how-to-build-a-web-app-using-bottle-with-jinja2-in-google-app-engine/

Ответ 5

Это действительно зависит от того, чего вы пытаетесь достичь, для микросервиса/приложений/веб-сайтов бутылка очень проста и легка. Если вы планируете, что ваше приложение будет расти к тому времени, тогда Flask может быть хорошим вариантом для вас, потому что у него много расширений. У нас около 40-50 микросервисов, написанных в бутылках, и у нас не было никаких проблем.