JaehunYoon / H4lo-Django-Blog

πŸ“šπŸ“šLet's make blog with Python-Django!!πŸ“šπŸ“š

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

H4lo-Django-Blog

Studying Django, Python Web Application Framwork.

Commands

Execute venv

$ venv\Scripts\activate

Show Django version

$ python -m django --version

Create Project

$ django-admin startproject [project_name]

Run Server

$ python manage.py runserver [Port num]

포트 번호λ₯Ό 뒀에 μž…λ ₯ν•˜λ©΄ ν•΄λ‹Ή μž…λ ₯값을 포트둜 ν•˜λŠ” μ„œλ²„κ°€ μ—΄λ¦°λ‹€.
ν¬νŠΈλŠ” 기본적으둜 8000으둜 μ„€μ •λ˜μ–΄ μžˆλ‹€.

Create Application in Project

$ python manage.py startapp [Application name]

ProjectλŠ” λ‹€μˆ˜μ˜ app을 포함할 수 있고, app은 λ‹€μˆ˜μ˜ project에 포함될 수 μžˆλ‹€.

Database Migration

$ python manage.py migrate

Make Migrations

$ python manage.py makemigrations [Application name]

app을 Project에 ν¬ν•¨μ‹œν‚΄μ„ μ•Œλ¦¬κΈ° μœ„ν•˜μ—¬, [Project Name]/setting.py에 λ“€μ–΄κ°€ [Application Name].apps.[Application Name]Configλ₯Ό μΆ”κ°€ν•΄μ€€λ‹€.
makemigrationsλ₯Ό μ§„ν–‰ν•˜κΈ° 전에 app의 포함여뢀λ₯Ό μ•Œλ¦¬κΈ° μœ„ν•˜μ—¬ μ„ ν–‰λ˜μ–΄μ•Ό ν•  μž‘μ—…μ΄λ‹€.

Show SQL Query in migration

$ python manage.py sqlmigrate [Application name] [number]

[number]_initial.py와 같이 migration이 λ˜μ—ˆμŒμ„ ν™•μΈν•˜μ˜€λ‹€λ©΄ sqlmigrate λͺ…령을 톡해 sql문을 확인할 수 μžˆλ‹€.

Use Python Shell in Django

$ python manage.py shell

Import Model

from [Application name].models import [Class name]  # Import the model classes we just wrote
from django.utils import [Library name]  # Django Util Library

Create Administrator Account

$ python manage.py createsuperuser
Username (leave blank to use '[Local Name]'): [Admin name that you want to create]
Email address : [Your email address]
Password: [Your password]
Password (again): [Your password again]
Superuser created successfully.

django.contrib.auth λͺ¨λ“ˆμ—μ„œ μ œκ³΅λ˜λŠ” Djangoμ—μ„œ μ œκ³΅λ˜λŠ” 인증 ν”„λ ˆμž„μ›Œν¬μ΄λ‹€.

Django Template System

from django.template import loader
from django.http import HttpResponse

def index(request):
    ...
    template = loader.get_template('[Template Directory]')
    return HttpResponse(template.render((parameter), request))

* Directory

(Application Name)/
    template/
        (Custom - Application Name)/
            index.html
            ...
# Different Way - Using render()

def index(request):
    ...
    return render(request, '[Template Directory]', (parameter))

Abort 404 Error

from django.shortcuts import get_object_or_404
from django.shortcuts import render
from .models import Question

...

def func(request, param):
    question = get_object_or_404((Django Model), (Keyword Parameter)))
    return render(request, '[Template Directory]', {'Key': value})

URL namespace

Project λ‚΄μ—λŠ” μˆ˜λ§Žμ€ Application 이 μ‘΄μž¬ν•  수 있기 λ•Œλ¬Έμ— ν•˜λ“œ μ½”λ”©ν•˜μ˜€μ„ κ²½μš°μ— μ–΄λ–€ Application의 Viewμ—μ„œ URL을 μƒμ„±ν•˜λŠ” 지에 λŒ€ν•΄ μ•Œκ³ μž URLconf에 namespaceλ₯Ό μΆ”κ°€ν•œλ‹€.

# [Application Name]/urls.py

from django.urls import path
from . import views

app_name = '[Application Name]'
urlpatterns = [
    path('', views.index, name='index'),
    path(...),
    ...,
]
<!-- [Application Name]/templates/[Application Name]/index.html -->
<!-- ν•˜λ“œμ½”λ”©ν–ˆλ˜ 뢀뢄을 μˆ˜μ •ν•΄λ³΄μž! -->

<li><a href="{% url '[Path - Views Name]' (Parameter) %}">{{ (Data Binding) }}</a></li>

μœ„μ˜ μ½”λ“œλŠ” ν•˜λ“œμ½”λ”©λœ μ½”λ“œ

---

<li><a href="{% '[Application Name]:[Path - Views Name]' (Parameter) %}">{{ (Data Binding) }}</a></li>

λ‹€μŒκ³Ό 같이 `Path` λͺ… μ•žμ— `Application Name` + `:` 을 덧뢙여 `namespace`λ₯Ό μ΄μš©ν•˜μž.

About

πŸ“šπŸ“šLet's make blog with Python-Django!!πŸ“šπŸ“š


Languages

Language:Python 89.3%Language:HTML 10.7%