Django или yii для создания производственного веб-приложения с db и с помощью настраиваемых форм и отчетов

Я пытаюсь выбрать между django и yii для масштабируемого, поддерживаемого веб-приложения уровня предприятия с базой данных (желательно mysql). Приложение в основном сосредоточено на вводе данных, но с настраиваемыми рабочими процессами (за пределами ваших базовых форм с автогенерированной формой) и пользовательскими отчетами. У меня есть фон CS, знакомый с MVC, программирующий фон в С++, С#. 8 лет назад было создано аналогичное приложение, использующее php, mysql, perl/cgi и помню, что это было болезненно (все делало с нуля с крутой кривой обучения). Необходимо снова изучить синтаксис python или php, но я быстро забираю языки. Читайте подробно онлайн о django vs yii. Невозможно выполнить маршрут .net mvc из-за необходимости использования с открытым исходным кодом. Погруженный в RoR, любил язык, но мне не очень нравится волшебство, которое все еще происходит, особенно для приложения для оценки производительности. Возможно в будущем. Итак, вернемся к Django vs yii -

Факторы принятия решений:
1) более легкая кривая обучения
2) более подходящая структура для конкретных задач, которые мне нужны - тяжелые манипуляции с db, пользовательский поток пользовательского интерфейса (ничего слишком интенсивного gfx, просто регулярные элементы формы, но где мне нужно манипулировать данными по нескольким таблицам через объединения и т.д.)
3) никаких неприятных сюрпризов при подключении db (читайте, но не полностью поняли все gotchas с django orm и mysql).
4) что-то, где я не борюсь с фреймворком/языком для основных вещей
5) масштабируемое и быстрое время выполнения (я знаю, многое зависит от того, как один архитектор решение)

Прошу совета. Ищете помощь от кого-то знакомого с работой в обеих рамках. большое спасибо

Ответ 1

Я знаю, что это старо, но я чувствую, что могу добавить к этому, используя оба фреймворка.

Yii - прочная, быстрая структура. Это не так безопасно из коробки, как Django из-за определенных вещей (например, защита подделок на основе межсайтового запроса), которые по умолчанию не активируются или не применяются. Для меня самым большим преимуществом был встроенный генератор кода, потому что, как только вы разобрались и начали его использовать, он в основном выплескивает полнофункциональное приложение CRUD за считанные минуты.

Django - моя выборка, потому что Python - это самое большое преимущество Django. Не перебор на PHP, мне действительно очень нравится язык, но Python чистая объектно-ориентированная (что слово?), Наследование классов и т.д. Действительно сияет с помощью такой структуры, как Django. В Django нет встроенного генератора кода, который был преднамеренным выбором разработчиков. Это и сила, и слабость. Генератор кода Yii может стать немного костылем, если вы действительно пытаетесь изучить структуру, но с Django, как только вы узнаете, как это работает, вы можете войти и изменить что-либо, потому что вы сами его создали, и это заставляет вас хорошо изучить структуру. С Yii, когда у вас есть сгенерированный код и вы должны выполнить настройку, THEN вы можете быстро начать борьбу с каркасом.

Django ORM очень гибкий, я сам SQL-сам, и я думаю, что я использовал raw SQL в своих приложениях ровно один раз. Yii довольно хорош, но я даю Django ногу и в этом отношении, и Django очень хорошо документирован.

Установка Yii немного легче, чем Django, по моему опыту. Django требует немного больше работы, чтобы встать и работать. Django tutorial намного сильнее, чем у Yii, по крайней мере, это было, когда я начал.

Ответ 2

Мое предложение было бы Django. Формы в Django - это классы, и из всех фреймворков, с которыми я работал в течение последних 16 лет, от классического ASP до .NET, Rails и Java, я бы поставил Django на создание форм против любого из них.

Юг делает смехотворно простой процесс миграции схем и данных.

Я бы рекомендовал использовать Postgres over MySQL, особенно если вы собираетесь использовать Django ORM, так как он немного настроен для Postgres. Если вам не нужен администратор Django, и вы должны использовать MySQL, вы можете взглянуть на SQLAlchemy и Alembic.

Кривая обучения Django очень плоская. Это невероятно легко учиться и очень хорошо документировано.

Мои $0,02.

Ответ 4

Yii превосходно. Я мог бы научиться этому и пройти через пару часов. Я изо всех сил пытался настроить Django из-за запутанной конфигурации и сопоставления URL-адресов, которые необходимы для того, чтобы что-то работало. Я не сомневаюсь, что Django отлично, как только вы его изучите, но по моему опыту Yii было намного легче изучить.

Я действительно хочу, чтобы кто-то переносил Yii на python.