Задать вопрос

Django vs Flask? для новичка, и не совсем стандартных задач?

Господа, после некоторого времени изучения python пришла пока углубиться в web составляющую, и встал вопрос о выборе фреймворка. Собственно меня не интересуют "стандартные" сайты, вроде блога или сайта новостей. Скорее больше интересуют веб-приложения - нечто более кастомное. Собственно вопрос, какой фреймфорк лучше взять за основу для этих целей. С нормальным ORM например (который можно было бы расширить под свои нужны). В джанго например нравиться его модульность, возможно ли во flask грамотно реализовать нечто подобное? Просто после некоторого изучения этой темы, чуйка подсказывает что нужно выбирать flask. Но хотелось бы услышать мнение человека у которого есть опыт в этом вопросе? Спасибо.
  • Вопрос задан
  • 7076 просмотров
Подписаться 5 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 5
SowingSadness
@SowingSadness
web-разработчик
Pyramid
Очень модульный Фреймворк с гибкой системой настроек.
Можно легко написать RBAC или использовать обычную ACL
Из коробки при создании можно использовать SQLAlchemy
Так же из коробки легко подключаются MongoDB и CauchDB.
Для шаблонизации можно подключать Chameleon, Jinja2, Mako

Самое интересное, что этот Фреймворк позволяет делать всё что угодно и предоставляет простую систему работы с запросами и обслуживания безопасности.
Ну и конечно же поддерживается Python 3

__init__.py
from pyramid.config import Configurator

def main(global_config, **settings):
    config = Configurator(settings=settings) # читаем настройки из paste-deploy ini файла
    config.include('pyramid_chameleon')  # подключаем шаблонизатор
    config.add_static_view('static', 'static', cache_max_age=3600)  # указываем папку для статики
    config.add_route('home', '/')                # добавляем роут
    config.scan()
    return config.make_wsgi_app()


view.py:
from pyramid.view import view_config
from pyramid.response import Response

# указываем, что данная функция является обработчиком роутинга и выбираем шаблон
@view_config(route_name='home', renderer='templates/mytemplate.pt') 
def my_view(request):
    # Response(status_int=403)
    return {'project': 'MyProject'}


Flask менее функционален, чем Pyramid
Ответ написан
skipirich
@skipirich
проходил мимо
Вообще то, что лучше Django или Flask это вопрос религии :). Лично мне больше нравится Flask. Многим не нравится что он по умолчанию не модульный, ну так никто не мешает сделать его модульным либо в ручную либо с помощью blueprint. Для ORM можно использовать SQLAlchemy. Для шаблонизатора Jinja2. Для всего остального у этого фреймворка есть куча extentions. Да некоторых компонентов нет в коробке и их надо отдельно ставить, но лично я не вижу никаких проблем в том чтобы набрать pip install <имя_модуля>. К тому же есть большой плюс в том что многие компоненты разрабатываются независимыми командами, это означает что если в компоненте баг то его скорее всего починят быстро, а в фреймворках где все батарейки внутри придется ждать выпуска новой версии.
Ответ написан
Комментировать
pinkevich
@pinkevich
Developer
Как по мне, то Django нужно знать по дефолту, а потом уже все остальное. Из кучи либ для Flask можно склепать тот же Django, но кривой и не удобный.
Ответ написан
Комментировать
@borodaturan
Python developer
В свое время потратил достаточно много времени на изучение Pyramid. Выполнил несколько заказов, которые нашел через постоянное место работы. С недавнего времени начал поглядывать на фриланс (Odesk) и очень сильно разочровался. Две трети запросов по web python это Django, оставшаяся треть - Flask. Упоминание про Pyramid не встретил ни разу. По этому, если будет интересовать фриланс в будущем, то рекомендую попробовать Django.
Ответ написан
un1t
@un1t
Flask относительно красивый, но мало полезный. Это фреймворк в котором ничего нет. Я не знаю как это может быть плюсом, это почти как писать на голом PHP. Можно, но зачем?
Django это мощный фреймворк с огромным количеством встроенных возможностей и еще большим количеством сторонних библиотек.
Не вижу ни одной причины юзать Flask.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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