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
- djangoproject - models
- Creating an application
(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
-
Create tables for models in your database
(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