Angular 6 web app, python Django 2 RESTfull API, Cross platform iOS and Android mobile with NativeScript
Django is a high-level web framework written in Python that encourages fast development and pragmatic, clean design. Python is equivalent to Ruby on Rails that lets you build high-productive, excellent Web applications quickly. The primary goal of Django is to ease the development of complex, database-driven websites.
This framework stresses the reusability of components and adheres to the “Don’t Repeat Yourself” (DRY) principle. This principle is targeted to reduce the repetition of information of all kinds. Thus “Don’t Repeat Yourself” principle gives the possibility to modify any element of a system and does not require changes in other logically-unrelated items.
Django uses the model-view-controller(MVC) method. It means that in Django, developers have practically complete separation of data structure, programming, and display logic.
Django framework is well-known for its brilliant inheritance-based templating system that provides ease of nesting templates within the templates, using various templates for the various parts of the site, and eliminating any redundancy in template code. Working with Django’s templating system is usually described as “a pleasure.”
The site on the Django framework consists of one or several applications that are recommended to be made as alienable or pluggable. This is one of the significant architectural differences of this framework from others (Ruby on Rails, for example). Also, in contrast to other frameworks, URL handlers in Django are configured with the help of regular expressions and are not derived automatically from the model structure controllers.
Django framework uses its Object-relational mapping (ORM) for work with a database. In this Object-relational mapping, the information is described using Python classes, and according to it, the database is generated.
The initial development of Django, as a means of news resources development, is rather strongly reflected in its architecture: it provides several tools that help in the rapid development of informative websites. So, for example, the developer does not need to create a page and controllers for the administrative part of the site, there is a built-in Django application for content management that can be incorporated into any site, made by Django, and which can control several sites on one server.
The administrative application allows you to create, modify and delete any objects filling the site, noting all the committed actions, and provides an interface for users’ management and group management (with the item-by-item assignment of rights).
In general, the most significant advantages of the Django framework are the complete documentation and the largest community of Python web frameworks.