Django

Source: djangoproject.com

= Installing =

Installation: sudo pip3 install django

Check installed version: python3 -m django --version

= Creating project = cd /home/mycode                  #Do not put code under /var/www django-admin startproject mysite

Avoid using names like django: conflict with Django itself test:  conflicts with a built-in Python package

Startproject command will create: mysite/ manage.py    mysite/ __init__.py        settings.py         urls.py         wsgi.py

These files are:
 * The outer mysite/: Just a container for the project. It can be renamed it to anything.
 * manage.py: Command-line utility that allows to interact with this Django project in various ways.
 * The inner mysite/ directory is the actual Python package for the project. This is the Python package name to use to import anything inside it (e.g. mysite.urls).
 * mysite/__init__.py: Empty file that tells Python that this directory should be considered a Python package.
 * mysite/settings.py: Settings/configuration for this Django project.
 * mysite/urls.py: The URL declarations for this Django project; a “table of contents” of your Django-powered site.
 * mysite/wsgi.py: An entry-point for WSGI-compatible web servers to serve your project.

= Running Project =

python manage.py runserver http://127.0.0.1:8000/

Changing the port python manage.py runserver 8080

Listen on all available public IPs: python manage.py runserver 0:8000 python manage.py runserver 0.0.0.0:8000

Automatic reloading of runserver: The server automatically reloads Python code for each request as needed. No need to restart the server for code changes to take effect. Some actions like adding files don’t trigger a restart, need to restart the server in these cases.

Invalid http_host header Need to add 198.211.99.20 to ALLOWED_HOSTS setting in project settings.py file ALLOWED_HOSTS = ['198.211.99.20', 'localhost', '127.0.0.1']

= Creating an App =


 * References