Skip to content
Aniket Maithani edited this page Aug 18, 2017 · 6 revisions

Fueled-Cookie-Cutter

Let's take a look at some of the libraries/modules it uses other than the Django [Current version being 1.8.2].

  • WhiteNoise : White-Noise allows your web app to serve its own static files, making it a self-contained unit that can be deployed anywhere without relying on nginx, Amazon S3 or any other external service. (Especially useful on Heroku, OpenShift and other PaaS providers.) It’s designed to work nicely with a CDN for high-traffic sites so you don’t have to sacrifice performance to benefit from simplicity. WhiteNoise works with any WSGI-compatible app but has some special auto-configuration features for Django.

  • Django-Extensions : To simply say it is a collection/hub of Django based extension to do more than management. It allows you to create more than normal CMS features. It includes management commands, additional database fields, admin extensions.

  • Django-Flat-Responsive : django-flat-responsive is an extension for Django admin and django-flat-theme. This app adds CSS file which contains specific media queries for mobile devices, such as phones and tablets.

  • Argon-CFFI : CFFI-based Argon2 Bindings for Python. Used for hashing.

  • Whitenoise : WhiteNoise allows your web app to serve its own static files, making it a self-contained unit that can be deployed anywhere without relying on nginx, Amazon S3 or any other external service. (Especially useful on Heroku, OpenShift and other PaaS providers.)

  • Django Rest Swagger : An API documentation generator for Swagger UI and Django REST Framework

  • django-log-request-id : Django middleware and log filter to attach a unique ID to every log message generated as part of a request.

  • PyTz : This allows you Django [and simple Python based applications also] to calculate correct Time across different time-zones. I am myself quite fascinated by the fact that it is one of the most exquisite piece of library ever written. I can probably go and on about this. But you should yourself Google this up in order to see it's relevance.

  • Django-Environ : This allows you to set your environment variables with reference to your project settings. A very good example of this is given at the following link : [https://django-environ.readthedocs.org/en/latest/]

  • Django-Secure : This module allows you to check for the common security/other parameters you may get bewildered with and allows you to correct that. As the name suggest it is not IDS [Intrusion Detection System etc.] but allows you to create your app in a much secure way.

  • Python-dotenv : read values from .env file and loads them as environment variable.

  • Django-UUID-Upload-Path : As the name suggest it generates short UUIDs and use them as paths for uploaded media files in Django.

  • Django-VersatileImageField : A drop-in replacement for django's ImageField that provides a flexible, intuitive and easily-extensible interface for quickly creating new images from the one assigned to the field. [Another intersting library : you can Google this up for more use cases.]

  • Pillow : it's a very easy and intuitive easy-to-use Python Imaging Library.

  • Psycopg2 : Psycopg is the most popular PostgreSQL database adapter for the Python programming language. Its main features are the complete implementation of the Python DB API 2.0 specification and the thread safety (several threads can share the same connection). It was designed for heavily multi-threaded applications that create and destroy lots of cursors and make a large number of concurrent “INSERT”s or “UPDATE”s.

  • Django Rest Framework : Entire Django Rest Framework to make API's out of your project/app.

  • MkDocs : Utility to create project documentation with Markdown. [https://github.com/mkdocs/mkdocs]

  • isort : It's a Python utility to sort imports. [https://github.com/timothycrosley/isort]

  • django-debug-toolbar, ipdb, ipython : These are all basically used in debugging. Ipdb is the interactive Python debugger and Ipython is the interactive Python interpreter.

Testing and Coverage

In general testing refers to "checking" your code with automated "cases/inputs" to make sure the code works fine. Some of the modules that are used in Testing are as follows :

  • PyTest-Django

  • PyTest

  • flake8 : Flake8 (used in “Python Flake8 Lint”) is a wrapper around these tools: pep8 is a tool to check your Python code against some of the style conventions in PEP8. PyFlakes checks only for logical errors in programs; it does not perform any check on style

  • bumpversion : A small command line tool to simplify releasing software by updating all version strings in your source code by the correct increment. Also creates commits and tags, version formats are highly configurable works without any VCS, but happily reads tag information from and writes commits and tags to Git and Mercurial if available and just handles text files, so it’s not specific to any programming language.

Production Utilities

  • Boto : [https://boto.readthedocs.org/en/latest/getting_started.html] In one line it's a "Python Interface to AWS"
  • hiredis : Hiredis is a C client library for the Redis database.
  • Gunicorn : Gunicorn 'Green Unicorn' is a Python WSGI HTTP Server for UNIX.