Чем отличается django от django rest framework
django-rest-framework
Posts with mentions or reviews of django-rest-framework. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-04-30.
Traceback (most recent call last): File "/lib/python3.5/site-packages/django/core/handlers/exception.py", line 41, in inner response = get_response(request) File "/lib/python3.5/site-packages/django/core/handlers/base.py", line 249, in _legacy_get_response response = self._get_response(request) File "/lib/python3.5/site-packages/django/core/handlers/base.py", line 187, in _get_response response = self.process_exception_by_middleware(e, request) File "/lib/python3.5/site-packages/django/core/handlers/base.py", line 185, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/lib/python3.5/site-packages/django/views/decorators/csrf.py", line 58, in wrapped_view return view_func(*args, **kwargs) File "/lib/python3.5/site-packages/rest\_framework/viewsets.py", line 86, in view return self.dispatch(request, *args, **kwargs) File "/lib/python3.5/site-packages/rest\_framework/views.py", line 489, in dispatch response = self.handle_exception(exc) File "/lib/python3.5/site-packages/rest\_framework/views.py", line 449, in handle_exception self.raise_uncaught_exception(exc) File "/lib/python3.5/site-packages/rest\_framework/views.py", line 486, in dispatch response = handler(request, *args, **kwargs) File "/application/siop/views/API/product.py", line 184, in partial_update return Response(serializer.data, status=status.HTTP_200_OK) File "/lib/python3.5/site-packages/rest\_framework/serializers.py", line 739, in data ret = super(ListSerializer, self).data File "/lib/python3.5/site-packages/rest\_framework/serializers.py", line 265, in data self._data = self.to_representation(self.validated_data) File "/lib/python3.5/site-packages/rest\_framework/serializers.py", line 657, in to_representation self.child.to_representation(item) for item in iterable File "/lib/python3.5/site-packages/rest\_framework/serializers.py", line 657, in self.child.to_representation(item) for item in iterable File "/lib/python3.5/site-packages/rest\_framework/serializers.py", line 488, in to_representation attribute = field.get_attribute(instance) File "/lib/python3.5/site-packages/rest\_framework/fields.py", line 464, in get_attribute raise type(exc)(msg)KeyError: "Got KeyError when attempting to get a value for field `user` on serializer `BulkProductSerializer`.\nThe serializer field might be named incorrectly and not match any attribute or key on the `OrderedDict` instance.\nOriginal exception text was: 'fk\_user'." At the L657 of the traceback (source here) I've got:
Given a Django model with a JSONField, what is the correct way of serializing and deserializing it using Django Rest Framework?
I'm converting my Django projects front end from using jquery to angularjs with Django Rest Framework in order to help make it a single page application. I've gotten most of my trickier pages converted over with angular and now comes the battle with Django's admin page.
I am learning Django Rest Framework, and also new to django. I want to return a custom 404 error in json when a client will access a resource which was not found.
I have made a certain app in Django, and I know that Django Rest Framework is used for building APIs. However, when I started to read about Django Rest Framework on their website, I noticed that each and every thing in API Guide(like request, response, views etc.) claims it is superior to Django (request, response, views etc.).
Web API
Сегодня сеть интернет построена по принципу Клиент-Серверного взаимодействия. Клиент посылает запрос — Сервер ему отвечает. В случае, когда между собой общаются два Сервера, мы условно называем Клиентом того, который отправил запрос и ожидает ответ, а Сервером будет тот, кто принимает запрос и отвечает не него. Взаимодействие браузеров и веб-сайтов (первые выступают в роли Клиента, а вторые в роли Сервера) традиционно делалось при помощи технологии html-рендеринга, именно так изначально это делал Django. Чтобы получить данные с веб-сайта, браузер отправляет запрос GET к Серверу. Сервер формирует ответ в виде html-страницы и передает ее браузеру. Так Сервер передает данные браузеру, но как браузер может передать данные Серверу? В этой самой html-странице Сервер заложил все необходимые веб-формы, заполнив которые, пользователь мог бы передать свои данные обратно на сервер. Когда вы ввели свои данные в форму на сайте, бразуер отправляет Серверу запрос POST, в котором содержатся ваши данные, а Сервер обрабатывает их и записывает в базу данных.
Все это отлично работало, но уже в середине нулевых такой подход перестал удовлетворять возрастающим требования в веб-разработке. Появлялись мобильные приложения, различные гаджеты с доступом в интернет, и для них уже не подходил стандартный способ html-рендеринга на сервере, ведь теперь каждому клиенту нужно было отрисовать данные по-своему. Постоянно увеличивалось взаимодействие серверов друг с другом, и html-формат уже не подходил. Для всех этих задач есть другой способ обмена данными — Web API. Смысл этого способа в том, что Сервер передает Клиенту не html-страницу, а непосредственно данные, никак не влияя на то, как эти данные будут в итоге представлены. Наиболее популярными форматами для передачи данных становятся XML и JSON. Таким образом Сервер полностью избавляется от задачи отрисовки данных. Какое-то время длился переходный период, когда разработчикам веб-приложений на Сервере приходилось поддерживать оба способа одновременно: html рендерился на Сервере для браузеров, а Web API использовался для мобильных приложений и интеграции с другими серверами. Понятно, что разработчикам приложений на Сервере приходилось делать двойную работу. Но в начале десятых ситуация стала меняться в пользу Web API. Этому способствовало молниеносное развитие инструментов на языке JavaScript, а также появление различных веб-фреймворков, одним из которых и является предмет данной статьи.
Браузерные приложения быстро научились отрисовывать веб-страницы самостоятельно, получая чистые данные с Сервера. Веб-приложения на сервере научились создавать API быстро и легко. Так сформировалась четкое разделение на Backend и Frontend разработку: тех, кто поддерживает приложение на Сервере, и тех, кто делает браузерные (клиентские) приложения. А Web API стал универсальным способом общения для Сервера и всех его клиентов (браузеров, мобильных приложений, других Серверов). Конечно, это не могло не привести к развитию стандартов в общении между системами. И Клиенту, и Серверу необходимо знать каким образом общаться с друг с другом, как передавать данные, как сообщать об ошибках. Разработчики всегда могли договориться о том, как взаимодействовать их приложениям, но наличие некоего стандарта в веб-разработке позволило бы эту задачу облегчить. И вот в начале десятых таким стандартом стала концепция REST.
В 2000 году Рой Филдинг написал докторскую диссертацию, где изложил концепцию REST. Там были рекомендации о том, как спроектировать Сервер, чтобы ему было удобно общаться с Клиентами. Выделю два главных принципа создания приложений в стиле REST:
- Сервер не должен ничего знать о текущем состоянии Клиента. В запросе от Клиента должна быть вся необходимая информация для обработки этого запроса Сервером.
- Каждый ресурс на Сервере должен иметь определенный Id, а также уникальный URL, по которому осуществляется доступ к этому ресурсу.
На данный момент мы можем найти фреймворк для создания приложений в стиле REST практически для каждого языка программирования, используемого в веб-разработке. Логика построения Web API на Сервере в этих фреймворках реализована одинаково.
У нас есть объект Кошка, и мы хотим создать запись о кошке на Сервере. Для этого мы отправляем запрос на сервер:
С данными в теле запроса
Плюс к этому запросу (и все другим) будет добавлен ключ аутентификации.
Ключ будет нужен, чтобы Сервер понял, что запрос происходит от авторизованного Клиента. Как мы помним из правила REST, каждый запрос от Клиента должен содержать всю необходимую информацию для обработки этого запроса Сервером. Здесь это правило работает: Сервер ничего не знает о Клиенте до запроса, но сам запрос содержит ключ авторизации, по которому Сервер определяет, что это за Клиент.
Сервер взял все поля, переданные клиентом, и добавил к ним поле Id. Здесь работает правило REST, согласно которому каждый ресурс должен иметь уникальный идентификатор и быть доступным по определенному URL. Сервер создал ресурс и вернул нам его Id.
Теперь мы можем получить данную запись по URL
Что, если Клиент хочет изменить созданные им данные на сервере?
С телом запроса:
Метод PUT используется для изменения данных. Номер 21 в URL говорит о том, какой именно объект нужно изменить. Теперь наша кошка имеет цвет “Black”.
С телом запроса:
Тут также мы указываем в Id объекта в URL, но передавать никаких данных в теле запроса для удаления объекта уже не требуется.
5 Answers 5
Your question was the same question I used to ask my senior at work when I first learned about Django and Django Rest Framework.
The answer I got was that Django Rest Framework helped you create API endpoints faster like one of the comments with the sample codes. I suggest you should read the comments by J. Hesters and C S here. However, I was not completely satisfied with the answer too. After working with them for a while, here are what I think:
Technically, let’s forget about Django Rest Framework. You can use Django only to build a fully functional web app without using any frontend frameworks, such as React, Angular, etc. Doing so, you have used Django for both backend and frontend. Actually, doing like this, you do not have the concept of backend and frontend. Your web app is just your web app, and that is it.
However, if you want your frontend to look fancy with complex CSS decoration, you may want to consider using frontend frameworks (React, Angular). Of course, you can use Django alone to make your frontend looks fancy too, but you have to write a lot of code to do so, and Django template is not popularly used comparing to frontend frameworks.
Now, let’s say you want to use a frontend framework. If you do not have a REST API, and your frontend code try to request data from one of your URLs, you will get a string data or an HTML page like what you get from using curl , it is not useful to get that data for your frontend. However, if you have a REST API, your backend data will be serialized in the way that your frontend code can understand and deserialize the returned data into some data objects like dictionary which you can use right the way.
Now, Django vs Django Rest Framework. You can use Django alone to make REST APIs, but you have to write more code and do more design like one of the comment above showing in the example. By using Django Rest Framework, you can write less code and reuse your code better.
Also, I think you may want to look into the difference between API vs REST API. They are using interchangeably, but they are not the same. For example, when you are using Django, you are using the Django APIs. REST(ful) API which is just one type of API is used for client-server web developments.
I have made a certain app in Django, and I know that Django Rest Framework is used for building APIs. However, when I started to read about Django Rest Framework on their website, I noticed that each and every thing in API Guide(like request, response, views etc.) claims it is superior to Django (request, response, views etc.).
The thing I am not understanding is whether these APIs will replace my existing Django models, views etc. or how can I use them differently in my existing Django code?
I am quite familiar with Django, but not able to understand exactly what Django Rest Framework is even after spending some time on it. (I know it is used for APIs.) Also, do I actually need an API? My app is able to send data to the server without an API, so in what case would I need an API?
They are designed to work together. DRF can build on top of your Django models (and Django authentication etc) - you use it instead of plain Django views in the places where you want API endpoints
@Anentropic So If I build my app entirely in DRF then both the things will be taken care of (The building of app itself along with API thing)
"also do I actually need an API" . if you don't know whether you need an API you probably don't need an API
it shows you how the concepts fit together by giving a practical example. you can see the Django parts and the DRF parts and also goes from basic to a bit more advanced. I suggest to actually read it and try and understand what you are reading
Django REST Framework
Наконец, мы добрались до главной темы этой статьи. Мы вкратце разобрали каждый компонент этого словосочетания и теперь сможем понять, зачем использовать этот фреймворк, и какие задачи он решает.
Тут я бы хотел процитировать слова Тома Кристи, создателя Django REST Framework.
“Неудивительно, что Django REST framework — это API фреймворк для Django. И он пытается заполнить все пробелы в том, как исторически был спроектирован веб-фреймворк Django”.
И действительно, пусть Django был спроектирован давно, он до сих отлично решает свои задачи. Однако с появлением новых требований в веб-разработке, отсутствие компонентов для создания Web API воспринимается как пробел.
Django REST framework способен этот пробел заполнить.
А мы уже заполнили все пробелы в теории и терминологии и готовы перейти к практике!
Мы рассказываем, как стать более лучшим разработчиком, как поддерживать и эффективно применять свои навыки. Информация о вакансиях и акциях эксклюзивно для более чем 8000 подписчиков. Присоединяйся!
Я создал определенное приложение в Django и знаю, что Django Rest Framework используется для создания API. Однако, когда я начал читать о Django Rest Framework на их веб-сайте, я заметил, что каждая вещь в Руководстве по API (например, запрос, ответ, представления и т. Д.) Утверждает, что превосходит Django (запрос, ответ, представления и т. Д.) .
Я не понимаю, заменят ли эти API мои существующие модели Django, представления и т. Д. Или как я могу использовать их по-другому в моем существующем коде Django?
Я хорошо знаком с Django, но не могу точно понять, что такое Django Rest Framework, даже потратив на это некоторое время. (Я знаю, что он используется для API.) Кроме того, действительно ли мне нужен API? Мое приложение может отправлять данные на сервер без API, в каком случае мне понадобится API?
Они созданы для совместной работы. DRF может строиться поверх ваших моделей Django (и аутентификации Django и т. Д.) - вы используете его вместо простых представлений Django в тех местах, где вам нужны конечные точки API.
@Anentropic Итак, если я создам свое приложение полностью в DRF, то обо всем позаботятся (создание самого приложения вместе с API)
"также мне действительно нужен API" . если вы не знаете, нужен ли вам API, вам, вероятно, не нужен API
он показывает вам, как концепции сочетаются друг с другом на практическом примере . вы можете увидеть части Django и части DRF, а также перейти от базового к немного более продвинутому. Я предлагаю прочитать его и попытаться понять, что вы читаете
Django Rest Framework упрощает использование вашего Django Server в качестве REST API.
REST означает « повторно презентационное с татэ т ransfer» и API , обозначает в РИМЕНЕНИЕ р rogramming я nterface.
Вы можете создать спокойный api, используя обычный Django, но это будет очень аккуратно. DRF все упрощает. Для сравнения, вот простой GET-просмотр, использующий обычный Django, и другой, использующий Django Rest Framework:
А с DRF это становится:
Обратите внимание, что с DRF у вас легко есть список и создание представлений, а также аутентификация.
Ваш второй пример неполон, так как MyObjSerializer его нужно где-то определить, поэтому он не такой «простой», как предлагает пример (вы не можете обойтись, не перечислив где-нибудь поля модели и т. Д. ). Было бы лучше указать, что вы можете повторно использовать настраиваемый сериализатор в нескольких представлениях. Таким образом, DRF помогает повторно использовать код в дополнение к автогенерированию множества конечных точек, параметров формата, управления версиями .
Нужен ли вам api, зависит от того, что вы хотите сделать. Например, если вы хотите получить доступ ко всему в ваших моделях Django с мобильного устройства И из веб-приложения, вы захотите использовать DRF.
Почему ? Рассмотрим случай, когда вы разрабатываете приложение для iOS, в которое пользователи могут входить, и хотите использовать Django в качестве серверной части. Если вы также хотите иметь веб-сайт, который они могут использовать для изменения информации профиля своего приложения (скажем, обновить свой адрес электронной почты или загрузить изображение), вам понадобится способ поделиться информацией в ваших моделях Django как с веб-сайтом, так и с устройство iOS. Как это может быть сделано? Предоставляя пользователю возможность создавать / читать / обновлять / удалять данные, просто сообщая ему URL-адрес, по которому нужно перейти. Теперь, если вы хотите получить доступ к информации из модели, вы можете сделать это с нескольких устройств, поскольку любое устройство может посещать URL-адрес.
Однако, если вы просто создаете простое веб-приложение / веб-страницу и храните все в одном месте, вы можете просто использовать Django.
Боковое примечание: довольно популярно мнение, что вы должны стараться как можно больше отделить интерфейс от серверной части. В этом случае, если вы хотите использовать какую-либо среду разработки внешнего интерфейса, такую как React, Angular или Vue, будет запутанно пытаться включить все эти ресурсы на страницы шаблонов Django, даже если вам нужно только простое веб-приложение / веб-страницу. В этом случае вы должны использовать DRF для настройки своего бэкэнда и просто нажимать URL-адреса из внешнего интерфейса, используя такой инструмент, как axios. В этом сценарии ваш интерфейс, скорее всего, будет размещен на чем-то вроде Node.
Опять же, то, что вы решите использовать, на самом деле просто зависит от того, чего вы хотите от своего приложения / сайта и насколько вам комфортно с каждым инструментом.
Это не совсем объясняет, почему предпочитают DRF простому Django. Вы подразумеваете, что «Предоставляя пользователю возможность создавать / читать / обновлять / удалять данные, просто сообщая ему URL-адрес для перехода», что DRF может это сделать, а Django - нет, что, конечно, неверно. Вы также предлагаете, что Django не позволяет разделять фронт и бэкэнд, что тоже неверно. Я предполагаю, что моя точка зрения заключается в том, что вы действительно не объясняете, как DRF помогает с этим, по сравнению с простым выполнением этого в простом Django, в чем и был весь смысл вопроса.
10 Answers 10
Django Rest Framework makes it easy to use your Django Server as an REST API.
REST stands for "representational state transfer" and API stands for application programming interface.
You can build a restful api using regular Django, but it will be very tedious. DRF makes everything easy. For comparison, here is simple GET-view using just regular Django, and one using Django Rest Framework:
And with DRF this becomes:
Note that with DRF you easily have list and create views as well as authentication.
Your second example is incomplete as MyObjSerializer has to be defined somewhere, so it's not as "easy" as the example suggests (you can't get away without listing model fields etc somewhere). It'd be better to make the point that you can reuse the custom serializer in multiple views though. So DRF helps with re-using code in addition to autogenerating a bunch of endpoints, format options, versioning.
Whether you need an api depends on what you want to do. For example, if you want to access everything in your Django models from a mobile device AND a web-app, you would want to use DRF.
Why? Consider the case that you are developing an iOS app that users can sign into and you want to use Django as your backend. If you also want to have a website that they can use to change around their app's profile information (say, update their email address or upload a picture), you would need a way to share the information in your Django models with both a website and the iOS device. How can this be done? By giving the user the ability to create/read/update/delete data by simply telling it a url to go to. Now, if you want to access information from the model you can do it from multiple devices, since any device can visit a url.
However, if you're just building a simple webapp/webpage and keep it all in one place, you can just use straight Django.
Side note: it's a pretty popular opinion that you should try to separate your frontend from your backend as much as possible. In this case, if you want to use some frontend development framework like React, Angular, or Vue, it's gonna get messy trying to include all those resources in the Django template pages even if you only want a simple web app/web page. In this case, you would use DRF to set up your backend, and just hit the urls from the frontend using a tool like axios. In this scenario, your frontend would likely be hosted on something like Node.
Again, what you decide to use really just depends on what you want out of your app/site and how comfortable you are with each tool.
Я написал эту статью, чтобы рассказать в ней теорию, которая будет необходима для изучения Django REST Framework. Информация, изложенная в этой статье, не является исчерпывающей в данной теме и показывает историю развития веб-приложений лишь отчасти. Я просто постараюсь объяснить, почему этот фреймворк — часть естественной эволюции веб-технологий, и как при помощи него мы можем по-новому решать старые задачи веб-разработки.
Чтобы ответить на вопрос, что же такое Django REST Framework, нужно разобраться со всей необходимой терминологией.
Django
django-rest-framework
- SonarLint - Deliver Cleaner and Safer Code - Right in Your IDE of Choice!
- Scout APM - Less time debugging, more time building
- SaaSHub - Software Alternatives and Reviews
Django | django-rest-framework | |
---|---|---|
Project | ||
274 | Mentions | 118 |
63,863 | Stars | 23,347 |
1.1% | Growth | 0.9% |
9.8 | Activity | 8.4 |
6 days ago | Latest Commit | about 23 hours ago |
Python | Language | Python |
GNU General Public License v3.0 or later | License | BSD 3-clause "New" or "Revised" License |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
What are some alternatives?
django-ninja - 💨 Fast, Async-ready, Openapi, type hints based framework for building APIs
fastapi - FastAPI framework, high performance, easy to learn, fast to code, ready for production
Flask - The Python micro framework for building web applications.
Nest - A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications on top of TypeScript & JavaScript (ES6, ES7, ES8) 🚀
django-tastypie - Creating delicious APIs for Django apps since 2010.
Nuxt.js - The Intuitive Vue(2) Framework
Dependency Injector - Dependency injection framework for Python
django-modern-rpc - Simple XML-RPC and JSON-RPC server for modern Django
Okay I just finished a YouTube course on Django tutorials and i more or less understand Django to an extent. Now the issue is Django rest framework. Google says its used to create APIs but i just dont get it. if the Django framework can be used to create web applications then what can Django rest framework be used for in terms of web application development. By this question, i mean that is Django framework all you need to create a web app or do you need to add it to the rest framework?. What is the connection between a web app and an API?. Does a web app need an API to function?. I'll appreciate a simple explanation of the difference between the two and and how they connect to each other. Thanks.
An API is often used to make requests for a process. For example if your Django site will show weather forecasts, you can make an API that allows other programs to pull the data of the weather forecasts, and integrate these in another application, for example to email warnings to people in the neighborhood.
Or another example might be that each time you type some reminder in slack, it will make a POST request to the API to put the notification in a calendar.
Thank you for responding. So what i got from your explanation is that after you finish creating your web application. you have to create/connect APIs to the web app so that other applications can get information from your own app?
Django
На сегодняшний день наиболее функциональным фреймворком для создания веб-приложений на языке Python является фреймворк Django. Django можно назвать MVC-фреймворком, так он реализует взаимодействие пользователя и системы:
Model (хранит данные пользователя)
View (отображает данные пользователя)
Controller (принимает изменения данных от пользователя).
Внутри Django эта терминология звучит немного иначе, но суть остается той же.
Разработка Django началась в 2003 году программистами Adrian Holovaty и Simon Willison, а публичный релиз состоялся в 2005 году. Функционал фреймворка хорошо отвечал требованиям в веб-разработке того времени. Он активно развивается и до сих пор. Хотя этот фреймворк и считается довольно крупным и многофункциональным, сам по себе он не мог удовлетворить все запросы веб-разработчиков. За время его существования сторонними разработчиками было создано огромное множество библиотек и фреймворков в качестве дополнений к Django, которые упрощают реализацию тех или иных задач: аутентификация через социальные сети, кеширование данных, хранение файлов в облаке и многое другое. Некоторые из дополнений со временем сами стали частью проекта Django, как это произошло с библиотекой South, управляющей миграциями базы данных. Но большинство дополнений так и остались независимыми пакетами. Одним из них и является Django REST Framework, при помощи которого мы можем создавать Web API на основе Django.
Framework
Создавая приложение или любой другой программный продукт, мы хотим делать это быстро и качественно. Проще этого добиться, используя опыт и наработки других разработчиков, ведь многие задачи, которые мы встречаем в процессе работы, уже были кем-то решены. По сути, использование фреймворка позволяет сосредоточится на задачах бизнеса и не задумываться над техническими деталями там, где это возможно. Нужно отрисовать кнопку на сайте? Сделать авторизацию или сброс пароля? Сохранить данные пользователя из формы на сайте в базу данных? Для этого всё уже готово — бери и пользуйся!
Также важно понимать отличия Framework от библиотеки. Это похожие вещи. В обоих случаях в Python вы должны установить нужный пакет, импортировать и пользоваться им. Разница в том, что библиотеку в проекте вы используете там, где нужно, и так, как вы хотите, а фреймворк сам определяет способ разработки приложения, то есть не только предоставляет удобные инструменты разработки в виде вспомогательных функций и классов, но и непосредственно формирует архитектуру проекта, создает структуру кода, проще говоря, определяет путь, по которому вы будете создавать свое приложение.
Django
Posts with mentions or reviews of Django. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-05-04.
Django view points to a function, which can be a problem if you want to change only a bit of functionality. Yes, I could have million keyword arguments and even more if statements in the function, but I was thinking more of an object oriented approach.
To može da bude neka web aplikacija (u tom slučaju baci pogled na Flask, Django ili FastAPI), može da bude igrica (Pygame), desktop aplikacija (tkinter), a možeš da napraviš i najobičniju konzolnu aplikaciju.
I'm using sorl-thumbnail, PIL, and Django on a webserver to dynamically create thumbnails in templates.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance. Closed 10 years ago.I'm new to web-application development, and I've just started building a (relatively large) webapp. Thus-far I've been using Django, however, I've just read about Pyramid, and I really like the sound of it: Its documentation reads well, it seems to scale easily from small-to-large projects, it boasts great performance, and it's developers seem quite onto-it. All good things. It also seems quite flexible, which suits my needs well. However, I'm worried about Pyramid's user-base.
Django is the opposite of Flask. It offers lot of powerful tools out of the box, like an ORM (database integration), administration tools, a built-in internationalization system, and more. It uses MVC/MVT for it's architecture, and admin interface. The main cons of Django are, stuck with their tools (specially the ORM), not a log of design flexibility and a large code.
I took a look in the templatetags of the admin section (mainly here, but I couldn't understand how to easily add the delete action to each item in a customized change_list.html template and what should be added to the ModelAdmin class).
Compare Django vs django-rest-framework and see what are their differences.
Читайте также: