가상환경이 켜진 상태에서 helloworld
라는 프로젝트 폴더를 생성한다.
django-admin startproject helloworld
터미널 경로를 생성된 프로젝트 폴더로 이동한다.
manage.py 파일이 있는 프로젝트 폴더 내에 print
앱 폴더를 생성한다.
python manage.py startapp print
app을 만들었지만 project는 그 app의 존재를 아직 모른다. 그래서 app을 만들었다고 등록해주는 절차가 필요하다.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'print.apps.printConfig',
]
settings.py 파일에 INSTALLED_APPS 영역에 print.apps.printConfig
을 추가해준다.
print/apps.py 파일을 열어보면 printConfig
라는 클래스가 정의되어 있는데, 그것을 등록해주는 절차이다.
template은 유저가 보는 화면이라 생각하면 된다. app폴더 안에 templates폴더를 만들고, template 내부에 html 파일들을 넣어준다.
<h1>
Hello, world!
</h1>
views.py
파일에서 print 앱의 기능을 구현할 수 있다. # Create your views here 주석 아래에 사용할 함수를 정의해 주면 된다.
from django.shortcuts import render
# Create your views here.
def helloworld(request):
return render(request, 'helloworld.html')
print 앱은 특별한 기능이 필요하지는 않을 것 같다. 요청이 들어오면 helloworld.html 파일을 열어주는 helloworld
이라는 함수를 구현했다.
app 폴더 안에 있는 views.py의 함수를 import
해온다.
import print.views
urlpatterns에 path
를 추가한다.
urlpatterns = [
path('admin/', admin.site.urls), # 원래 있던 path
path('', print.views.helloworld, name='helloworld'),
]
path() 함수는 3가지 인수를 받는다.
path(경로, view에 정의된 함수, 이름)
경로 : 도메인 뒤에 붙는 url 부분이다. 예를 들어 http://127.0.0.1:8000/ 뒤에 admin/
을 입력하면, 어드민 페이지가 나올 것이다. helloworld.html 과 연결되는 path 는 ' '
로 아무것도 적지 않았다. 기본 홈화면이 되는 것이다.
view에 정의된 함수 : print폴더 속 views파일 속 helloworld 라고 정의된 함수를 실행시키겠다는 의미이다.
이름 : name='helloworld'
은 이 path의 이름을 helloworld라고 정의한다. 이렇게 정의된 이름은 django프로젝트 어디에서든 helloworld라고 불러서 호출할 수 있다.
가능한 함수 이름과 path 이름을 일치시켜주는 게 (정신건강에)좋다.
from django.contrib import admin
from django.urls import path
import print.views
urlpatterns = [
path('admin/', admin.site.urls), # 원래 있던 path
path('', print.views.helloworld, name='helloworld'),
]
프로젝트가 완성됐다! 터미널에 아래 명령어를 입력해 어떤 웹사이트가 만들어졌는지 확인할 수 있다.
python manage.py runserver
http://127.0.0.1:8000/ 로 브라우저 창을 열어서 확인해보자.
서버를 종료하려면 터미널에서 ctrl
+ c
를 누르면 된다.