Django 01(첫 번째 장고 앱 작성하기)

EunJi·2022년 10월 10일
0

Setting

  1. 가상환경 접속 (가상환경 이름: tutorial-env)
  2. 프로젝트 파일 생성 (프로젝트 파일명: mysite)
  3. mysite 내에서 서버 열기
  4. mysite 내에 앱 생성 (앱 이름: polls)
#1 가상환경 접속
[eunji@eunjiui-MacBookPro Django % source tutorial-env/bin/activate // 활성화 시작
(tutorial-env) eunji@eunjiui-MacBookPro Django %  // 활성화 완료

#2 프로젝트 파일 생성
(tutorial-env) eunji@eunjiui-MacBookPro Django % django-admin startproject mysite

#3 서버 열기
(tutorial-env) eunji@eunjiui-MacBookPro mysite % python3 manage.py runserver

#4 app 생성
(tutorial-env) eunji@eunjiui-MacBookPro mysite % python3 manage.py startapp polls

현재 Directory 상태

프로젝트 파일(mysite)내에 있는 파일
: mysite, polls

(tutorial-env) eunji@eunjiui-MacBookPro mysite % ls
db.sqlite3	manage.py	mysite	polls // 존재하는 파일들 

View 작성

1. polls/views.py

from django.http import HttpResponse

// index함수 생성
def index(request):
    return HttpResponse("Hello, world. You're at the polls index")
  • view를 호출하려면 해당 뷰와 연결된 URL 필요함.
  • 이를 위해 polls/urls.py를 생성해야 하는 것!

2. polls/urls.py

  • 직접 파일 생성을 해야 함. (다른 것들과 달리 자동 생성되지 않음!)
  • polls의 views와 연결된 URL 역할임.
from django.urls import path
from . import views
.
urlpatterns = [
    path('', views.index, name = 'index')
]

3. mysite/urls.py

  1. include import 추가
  2. urlpatterns 리스트에 include함수 추가
    path(‘polls/, include(‘polls.urls’))
from django.contrib import admin
from django.urls import path, include
.
urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]
  • 최상위 URLconf에서 polls.urls을 바라보게 설정한 것.(mysite가 최상위)
  • [주소]/polls 입력시 polls.urls(polls/urls.py에 있는 URL)과 연결.

함수 설명

include()

  • 다른 URLconf 참조할 수 있게 함.
  • 현 시점과 일치하는 부분은 잘라내고, 남은 부분을 include된 URLConf로 전달
    (polls.urls로 전달 -> url patterns에서 path를 사용하여 다음거 처리)

path()

4개의 인수를 가짐.
: route, view, kwargs, name

1. route (필수)

  • URL 패턴을 가진 문자열.
  • urlpatterns의 리스트에서 일치하는 route를 찾을 때 까지 비교
  • URLconf는 GET, POST의 매개변수 또는 도메인 이름 검색 X
    EX) https: //www.example.com/myapp/?page=3
    도메인-> 검색 X - https: //www.example.com
    GET,POST 매개변수 -> 검색 X - /?page=3
    Only 'myapp/' 만 찾음.

2. view (필수)

  • HttpRequest 객체를 첫번째 인수로 함.
  • urlpatterns에서 route가 일치하는 것을 찾으면 해당 뷰 함수로 이동

3. kwargs

  • 목표한 view에 사전형으로 전달.
  • 튜토리얼에서 사용 x

4. name

  • URL의 이름
  • django 어디에서나 명확하게 참조 가능해짐.
  • 하나의 파일만 수정해도 프로젝트 내의 모든 URL 변경 가능해짐.
profile
말하는 감자

0개의 댓글