getting started with django
Date: March 16th 2016
Last updated: March 16th 2016
This entry contains the bare bones to get a django site up and running. I was mostly following the direction of https://docs.djangoproject.com/en/1.9/intro/tutorial01/ and https://jeffknupp.com/blog/2012/02/09/starting-a-django-project-the-right-way/.
command line upgrade
sudo apt-get install django --upgrade python3
check version of django
import django django.VERSION # (1, 9, 4, 'final', 0)
mkproject surfdiary deactivate # leave virtual environment workon surfdiary # work on virtual environment
django-admin.py startproject mysite # check it worked cd mysite python3 manage.py runserver 8080
check it worked: go to http://127.0.0.1:8080/
start an application
python3 manage.py startapp surferprofile
current directory tree
tree ## output ├── db.sqlite3 ├── manage.py ├── mysite │ ├── __init__.py │ ├── __pycache__ │ │ ├── __init__.cpython-34.pyc │ │ ├── settings.cpython-34.pyc │ │ ├── urls.cpython-34.pyc │ │ └── wsgi.cpython-34.pyc │ ├── settings.py │ ├── urls.py │ └── wsgi.py └── surferprofile ├── admin.py ├── apps.py ├── __init__.py ├── migrations │ └── __init__.py ├── models.py ├── tests.py └── views.py
from django.http import HttpResponse def index(request): return HttpResponse("Welcome to the surferprofile index page.")
create and connect urls.py for my surferprofile app
Connect the index page containing an HttpResponse for my surferprofile app to the website. However, this code alone is not enough, it returns a page not found error.
from django.conf.urls import url from . import views urlpatterns = [url(r'^$', views.index, name='index'), ]
modify the existing urls.py for mysite
After adding this code I can navigate to //127.0.0.1:8080/profile/ to see the HttpResponse created in views.py. The urls.py created for the surferprofile app is called which points to the index method sitting in views.py. admin was added by default.
from django.conf.urls import include, url from django.contrib import admin urlpatterns = [ url(r'^profile/', include('surferprofile.urls')), url(r'^admin/', admin.site.urls), ]