Home > PYTHON > Framework > Django > Django intro

Django intro
python framework Django

What is Django #


Django python으로 구현된 web framework입니다.

Getting start #


다음은 아주 기본적인 django 의 실행방식입니다.

pip install Django # Django 설치
python -m django --version # Django 설치 확인

django-admin startproject <proj-name> # <proj-name> 프로젝트 생성

cd <proj-name>
python manage.py runserver # <proj-name> 프로젝트 실행

다음은 startproject로 생성되는 파일의 구조입니다.

  • <proj-name>/
    • manage.py
    • <proj-name>/
      • __init__.py
      • settings.py
      • urls.py
      • asgi.py
      • wsgi.py

Creating App #


다음은 django에서 App을 만들고 연결하는 방법입니다.

python manage.py startapp <app-name> # create App

다음은 startapp으로 생성되는 dir의 구조 입니다.

  • <app-name>/
    • __init__.py
    • admin.py
    • apps.py
    • migrations/
      • __init__.py
    • models.py
    • tests.py
    • urls.py
    • views.py
  • <app-name>/views.py
from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")
  • <app-name>/urls.py
from django.urls import path

from . import views

urlpatterns = [
    path("", views.index, name="index"),
]
  • <proj-name>/urls.py
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path("<app-name>/", include("<app-name>.urls")),
    path("admin/", admin.site.urls),
]

Setting database #


다음은 django에서 database를 세팅하는 방법입니다. Django는 기본으로 SQLite를 활용하지만 설정을 변경하여 수정이 가능합니다.

mysql #


다음은 mysql 예시입니다.

  • 필수 모듈 설치
pip install mysqlclient
  • <proj-name>.settings.py에 DB 옵션변경
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '<schema-name>',
        'USER': '',
        'PASSWORD': '',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

postgre #


다음은 postgre 예시입니다.

  • 필수 모듈 설치
pip install psycopg2
  • postgre setting
sudo su - postgres # postgre 실행
psql

CREATE DATABASE django_test; # postgre 유저 및 DB 생성
CREATE USER django_user WITH PASSWORD 'django_pass';
ALTER ROLE django_user SET client_encoding TO 'utf8';
ALTER ROLE django_user SET default_transaction_isolation TO 'read committed';
ALTER ROLE django_user SET timezone TO 'UTC';
GRANT ALL PRIVILEGES ON DATABASE django_test TO django_user;
\q
  • <proj-name>.settings.py에 DB 옵션변경
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '<schema-name>',
        'USER': '',
        'PASSWORD': '',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

Next(Web page) #


Next

Next(Rest API) #


Next