ELI5: Что такое Джанго? - PullRequest
0 голосов
/ 26 марта 2019

Я понимаю, что некоторые люди, вероятно, закатывают глаза на этот вопрос, но, верьте этому или нет, "высокоуровневая платформа Python Web" (официальное описание) - не очень полезное предложение для новичка. .

Что я знаю:

Python - это язык, на котором вы записываете материал, а затем он просто исполняется сверху вниз. Есть классы и объекты, но все равно в значительной степени сверху вниз. Есть также библиотеки, которые вы можете использовать, например, с include time. Они дают вам кучу дополнительных функций, которые вам не нужно писать самостоятельно. Код Python сохраняется в .py файлах.

А теперь мой вопрос - является ли Django просто причудливой библиотекой Python или это действительно язык программирования, который по некоторым причинам также использует файлы .py? И как это работает с {{some_variable_name}} командами, которые я пишу в моих .html файлах? Это тоже Джанго?

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

Заранее спасибо!

Больше контекста: Я должен использовать oTree , который является частью программного обеспечения для экономических экспериментов. И хотя его довольно просто использовать до тех пор, пока вам не понадобится ничего, кроме основной функциональности, как только вы отойдете от вещей, рассмотренных в руководстве, вы поймете, что он имеет множество уровней сложности, которые просто ПОЛНОСТЬЮ вне досягаемости новичка. Поэтому я пытаюсь разгадать тайну и хотя бы выучить слова, чтобы понять ответы форума на мои вопросы.

1 Ответ

1 голос
/ 26 марта 2019

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

Разница в том, насколько сильно вы ожидаете взаимодействия с реальным кодом внутри библиотеки. С (скажем) модулем / библиотекой Python json вам абсолютно ничего не нужно знать, кроме спецификаций вызовов библиотеки. В Python идет структура данных списков, слов, строк и чисел. Выходит текст JSON. Или наоборот. Возможно, вам нужно декодировать сообщение об ошибке о несериализуемых данных, а затем написать сериализатор, скажем, для даты Python. Кроме этого, ничего.

Практически возможно использовать Django в зачаточном состоянии / для начинающих. Большинство книг и онлайн-учебников начинаются именно там. Но для выполнения самых полезных вещей требуется использование наследования Python для получения классов Django и расширения их для достижения желаемого, путем переопределения методов, предоставляемых Django, для вставки собственного кода до или после вызова суперкласса, или иногда для замены класса Django. в целом. На всех уровнях довольно глубокого стека у вас есть возможность - и почти всегда желание или требование миссии - дополнить общее поведение Django своим собственным, более тесно связанным с вашим собственным бизнесом.

Существует также обширная экосистема модулей, которые интегрируются с платформой Django. Такие вещи, как django-crispy-формы, django-tables2, django-filters и сотни, если не тысячи, больше. Это спасает вас от изобретения многочисленных колес.

Джанго, по собственным словам его авторов, "самоуверенный". Существует несколько способов реализации веб-сервера. Джанго не претендует на универсальность. Есть и другие рамки. Так что это « A веб-фреймворк Python высокого уровня», а не «Единственно разумно возможный веб-фреймворк Python».

Если вы предпочитаете аналогии, простая библиотека - это универсальная машина. Скажем, газонокосилка. Или даже автомобиль. Джанго больше похож на владение инженерными работами. Это может сделать что угодно, в определенных широких пределах. Он ничего не может сделать, если кто-то не примет решения о "что?" и «как?», и, возможно, заменить некоторые из существующих машин другими машинами, более подходящими для этой цели.

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