Django and Python3 notes
Notes while working though the Writing your first Django app tutorial .
To get anywhere I need python3, and pip:
~$ sudo apt-get install python3-pip
Install virtualenv and vex globally:
~$ sudo pip3 install virtualenv vex
Create a directory structure:
~$ mkdir -p django/tutorial01
~$ cd django/tutorial01
~/django/tutorial01$
Create a virtal environment to work in:
See virtual environments
for more information.
~/django/tutorial01$ virtualenv -p /usr/bin/python3 env3
Enter the virtual environment:
~/django/tutorial01$ vex --path env3 bash
Verify the environment is a ready to use (specifically that the list of python modules available is limited to):
(env3) ~/django/tutorial01$ pip3 list
pip (9.0.1)
setuptools (38.2.5)
wheel (0.30.0)
Install django:
(env3) ~/django/tutorial01$ pip3 install Django
Create a project:
(env3) ~/django/tutorial01$ cd env3
(env3) ~/django/tutorial01/env3$ django-admin startproject mysite
(env3) ~/django/tutorial01/env3$ cd mysite/
Create a repository for the initial project and commit work done so far:
(env3) ~/django/tutorial01/env3/mysite$ git init
(env3) ~/django/tutorial01/env3/mysite$ git add manage.py mysite
(env3) ~/django/tutorial01/env3/mysite$ git commit -m"check in initial just-created project"
Start the development server to test:
(env3) ~/django/tutorial01/env3/mysite$ python manage.py runserver
Performing system checks...
...
Starting development server at http://127.0.0.1:8000/
Open a browser to the above URL.
Create the polls app:
(env3) ~/django/tutorial01/env3/mysite$ python manage.py startapp polls
Edit the polls/views.py
, polls/urls.py
, and mysite/urls.py
as described in the documentation.
Navigate to the polls URL, as described in the tutoral.
Ending directory structure, which is somewhat unclear from the tutorial:
(env3) ~/django/tutorial01$ find env3/mysite/ \( -type d -name __pycache__ -prune \) -o -print
env3/mysite/
env3/mysite/manage.py
env3/mysite/mysite
env3/mysite/mysite/wsgi.py
env3/mysite/mysite/urls.py
env3/mysite/mysite/__init__.py
env3/mysite/mysite/settings.py
env3/mysite/db.sqlite3
env3/mysite/polls
env3/mysite/polls/tests.py
env3/mysite/polls/admin.py
env3/mysite/polls/urls.py
env3/mysite/polls/views.py
env3/mysite/polls/apps.py
env3/mysite/polls/models.py
env3/mysite/polls/migrations
env3/mysite/polls/migrations/__init__.py
env3/mysite/polls/__init__.py