h-rafiee / djangogirls

A Learning repo

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DJANGOGIRLS

v 0.0.0

is a learning project steps by Django Girls

Steps

  1. create project folder
mkdir djangogirl && cd djangogirl
  1. install django globaly
pip install django==2.1.7
  1. install MySQL dependency
pip install mysqlclient
  1. start django project
django-admin.py startproject mysite .
  1. config setting for connect to MySQL mysite/settings.conf
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'djangogirls',
        'USER': 'root',
        'PASSWORD': 'root',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }
}
  1. migrate project to database
python manage.py migrate
  1. create an app
python manage.py startapp blog
  1. add blog to setting mysite/settings.conf
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog'
]
  1. add post model blog/models.py
from django.conf import settings
from django.db import models
from django.utils import timezone


class Post(models.Model):
    author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    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
  1. create migrate from model for blog
python manage.py makemigrations blog
  1. migrate blog
python manage.py migrate blog
  1. add post to blog/admin.py
from django.contrib import admin
from .models import Post

admin.site.register(Post)
  1. create a supperuser for admin connection
python manage.py createsuperuser
  1. run server
python manage.py runserver 127.0.0.1:8000
  1. Deployment on PythonAnyWhere ( Wiki | DjangoGirls )
  2. create a new route for our blog on mysite/urls.py
from django.contrib import admin
from django.urls import path
from django.urls import include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('blog.urls')),
]
  1. ok we see we add blog.urls so we need create or edit blog/urls.py as
from django.urls import path
from . import views

urlpatterns = [
    path('', views.post_list, name='post_list')
]
  1. we doesn't have any post_list function on views so we need create a one on blog/views.py
from django.shortcuts import render

# Create your views here.
def post_list(request):
        return render(request, 'blog/post_list.html', {})
  1. so we can create a html as post_list.html for view in blog/templates/blog directory
  2. for add static files Read this doc
  3. for deploy on Pythonanywhere.com about static files Read this doc ; I had to copy statics files form ./blog/static/blog to ./static/blog it was easier to me
  4. WE ARE HERE ON TUTORIAL

About

A Learning repo


Languages

Language:Python 66.1%Language:HTML 30.1%Language:CSS 3.8%