The single most significant advantage in Django class-based views is inheritance. On a large project it's likely that we will have lots of similar views. instead of writing the repeated code we can simply have our views inherit from a base view.
It is a bit pricy if you want to host code for collaboration using bitbucket or github on your own VPS or On-Premisis servers. Gitlab in midst of this provides a community edition which is packed with essential features and also free of cost. Both Editions ship with CI integrated in it and also can handle 3rd party CI applications like Jenkins or Bamboo ..etc.,
Python Collections - named tuple is to access by the names specified and deque is to append and pop the elements from both sides of queue are explained with real time examples in part 1 of collections series
IPython is a set of tools developed to make it easier for the programmers to work with Python and data. IPython provides extensions to the Python programming language that make working interactively convenient and efficient. IPython Notebook lets you write and execute code, analyze data in your web browser.
By writing unit test cases, you can evaluate each code component in the initial stage itself and it'll improve your app/code performance. Which is the best practice to test your code and you can easily determine if there are any errors.
Ansible is a scripting language mostly used to automate installing applications, deploying apps etc.. Why Ansible: You may think why learn new language if I can do the same using shell scripts, well that's ok but in my opinion ansible doesn't take much time to learn and shell scripts could become complex as the projects scale up. You can read afurther details over here(https://news.ycombinator.com/item?id=6431552).
When you want to track your exception and log mesages in a UI rather than storing it in a file(which we usually do), we can use SENTRY. Sentry provides real-time crash reporting and exception tracking for your web and mobile apps.
Django provides built in authentication which is good for most of the cases, but you may have needs that are being served with the existing system. For Ex: You want 'email' for authentication purpose rather than Django's username field and you want an extra field called 'display_name' as full name for the logged in User. To meet the above requirements, we need to customize Django's built-in user model or substitute a completely customized model.