Я часто вижу, что люди, утверждающие, что их бэкэнд реализован в Django, но не является ли Django для интерфейса? Я бы предположил, что backend относится к бизнес-логике, где интерфейс относится к презентации. Я что-то пропустил?
Является ли Django интерфейсом или бэкэндом?
Ответ 1
Ни.
Django - это структура, а не язык. Python - это язык, на котором написан Django.
Django представляет собой набор библиотек Python, позволяющий быстро и эффективно создавать качественное веб-приложение и подходит как для интерфейса, так и для бэкэнд.
Тем не менее, Django довольно известен своим "администратором Django", автоматически созданным бэкэнд, который позволяет вам управлять веб-сайтом в мгновение ока для многих простых случаев использования без необходимости много кода.
Точнее, для front-end Django помогает вам в выборе, формировании и отображении данных. Он включает в себя управление URL-адресами, язык шаблонов, механизм аутентификации, кеш-крючки и различные средства навигации, такие как paginators.
Для бэкэнда Django поставляется с ORM, который позволяет вам легко управлять своими источниками данных, формами (независимая от HTML реализация) для обработки пользовательского ввода и проверки данных и сигналов, n реализации шаблона наблюдателя. Плюс тонны прецедентов, отличных от маленьких инструментов.
Для всей остальной части backend-работы Django не помогает, вы просто используете обычный Python. Бизнес-логика - довольно широкий термин.
Вероятно, вы тоже хотите знать, что Django поставляется с концепцией приложений, а сам содержит встроенную библиотеку Django, которая решает проблему. Сообщество Django огромно, и поэтому существует множество приложений, которые выполняют специфическую бизнес-логику, которую не поддерживает vanilla Django.
Ответ 2
Кажется, вы на самом деле говорите о шаблоне MVC (Model-View-Controller), где логика разделяется на различные "ярусы". Django, как структура, следует за MVC (свободно). У вас есть модели, которые содержат вашу бизнес-логику и относятся непосредственно к таблицам в вашей базе данных, представления, которые по сути действуют как контроллер, обрабатывают запросы и возвращают ответы и, наконец, шаблоны, обрабатывающие презентацию.
Django - это не просто один из них, это полная структура для разработки приложений и предоставляет все необходимые инструменты для этой цели.
Frontend vs Backend - это все семантика. Вы могли бы потенциально создать приложение Django, которое полностью "backend" , используя встроенный пакет admin contrib для управления данными для совершенно отдельного приложения. Или вы можете использовать его исключительно для "frontend", просто используя свои представления и шаблоны, но используя что-то еще для управления данными. Как правило, он используется для обоих. Встроенный администратор ( "backend" ) обеспечивает простой способ управления вашими данными, и вы создаете приложения в Django для представления этих данных различными способами. Однако, если бы вы были так склонны, вы могли бы также создать свой собственный "backend" в Django. Вы не обязаны использовать администратора по умолчанию.
Ответ 3
(a) Django - это фреймворк, а не язык
(b) Я не уверен, что вам не хватает - нет причин, по которым у вас не может быть бизнес-логики в веб-приложении. В Django вы обычно ожидаете, что логика представления будет отделена от бизнес-логики. Просто потому, что он размещен на одном сервере приложений, из этого не следует, что два слоя запутались.
(c) Django предоставляет шаблоны, но не предоставляет богатые библиотеки для создания клиентского содержимого.