진박사의 일상

[django] 2일차 Hello world, Polls App 만들기 - 1 본문

프로그래밍

[django] 2일차 Hello world, Polls App 만들기 - 1

진박사. 2021. 5. 7. 17:14

jango project 만들기

$ django-admin startproject (config) .

웹서버 시작하기

$ python manage.py runserver

  기본 웹 서버는 8000 포트를 기본으로 동작 변경하려면

  $ python manage.py (8080/변경할 포트 번호)

앱 만들기

$ python manage.py startapp (polls)

뷰 만들기

from django.http import HttpResponse
def index(request):
    return HttpResponse("Hello World!")

polls 폴더에 urls.py 만들어서

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index') #path(route, view, kwargs, name)
]

config의 urls.py를 수정

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]

path 함수의 route(=주소), view(route 주소로 접근한 view), kwags(뷰에 전달할 값), name(route의 이름)

 

서버를 실행해서 127.0.0.1:8000/polls 접속하면 Hello, world 성공.

 

DB 만들기(초기화)

$ python manage.py migrate

사용할 DB 변경을 위해선 config/settings.py의 76번째 줄의 ENGINE을 확인

 

모델 만들기

모델은 models.Model을 상속받아 만듦.

각 클래스는 필드값을 가짐. 필드=자료형. ForeignKey는 다른 모델과의 관계를 맺기 위해 사용.

모델 완성후 DB에 적용-> migrate명령어 사용

config/settings.py에 INSTALLED_APPS에 앱을 추가 ex) 'polls.apps.PollsConfig'

그 이후에 DB에 적용하기 위해

  $ python manage.py makemigrations (polls) 

해서 앱의 변경사항 추적해 DB 적용할 SQL query문을 생성(sqlmigrate 명령어 이용해서 확인 가능)

  $ python manage.py migrate polls 0001

해서 실제 DB에 적용

 

관리자페이지에 모델 등록

관리자 계정 만들기 - createsuperuser

admin.py에서 모델 등록 (Ex. Question)

from django.contrib import admin

from .models import Question

admin.site.register(Question)

이후 관리자 페이지에서 확인 가능.