- 가상환경 접속 (가상환경 이름: tutorial-env)
- 프로젝트 파일 생성 (프로젝트 파일명: mysite)
- mysite 내에서 서버 열기
- 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
프로젝트 파일(mysite)내에 있는 파일
: mysite, polls
(tutorial-env) eunji@eunjiui-MacBookPro mysite % ls
db.sqlite3 manage.py mysite polls // 존재하는 파일들
from django.http import HttpResponse
// index함수 생성
def index(request):
return HttpResponse("Hello, world. You're at the polls index")
- view를 호출하려면 해당 뷰와 연결된 URL 필요함.
- 이를 위해 polls/urls.py를 생성해야 하는 것!
- 직접 파일 생성을 해야 함. (다른 것들과 달리 자동 생성되지 않음!)
- polls의 views와 연결된 URL 역할임.
from django.urls import path
from . import views
.
urlpatterns = [
path('', views.index, name = 'index')
]
- include import 추가
- 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)과 연결.
- 다른 URLconf 참조할 수 있게 함.
- 현 시점과 일치하는 부분은 잘라내고, 남은 부분을 include된 URLConf로 전달
(polls.urls로 전달 -> url patterns에서 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 변경 가능해짐.