c. New project - rbuhler/python.training.django-girls GitHub Wiki

Your first Django project!

  • Start a new project
(myvenv) ~/djangogirls$ django-admin startproject mysite .
  • Change Settings
mysite/settings.py
TIME_ZONE = 'America/Sao_Paulo'
ALLOWED_HOSTS = ['127.0.0.1', '.pythonanywhere.com']
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
  • Create a DB
(myvenv) ~/djangogirls$ python manage.py migrate
  • Start a Webserver
(myvenv) ~/djangogirls$ python manage.py runserver
or
(myvenv) ~/djangogirls$ python manage.py runserver 0:8000

Django models

(myvenv) ~/djangogirls$ python manage.py startapp blog
  • Add app to Django project (mysite/settings.py)
INSTALLED_APPS = [                                 
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',
]                                                      
  • Creating a blog post model blog/models.py
from django.db import models
from django.utils import timezone


class Post(models.Model):
    author = models.ForeignKey('auth.User')
    title = models.CharField(max_length=200)
    text = models.TextField()
    created_date = models.DateTimeField(
            default=timezone.now)
    published_date = models.DateTimeField(
            blank=True, null=True)

    def publish(self):
        self.published_date = timezone.now()
        self.save()

    def __str__(self):
        return self.title
(myvenv) ~/djangogirls$ python manage.py makemigrations blog
(myvenv) ~/djangogirls$ python manage.py migrate blog

Django Admin

blog/admin.py

from django.contrib import admin
from .models import Post

admin.site.register(Post)

Command line:

(myvenv) ~/djangogirls$ python manage.py createsuperuser
(myvenv) ~/djangogirls$ python manage.py runserver

http://127.0.0.1:8000/admin/

Django admin - Documentation