티스토리 뷰

728x90
반응형

 

 

pip install django로 장고를 설치한 후 

1
pip install django

django-admin.py로 장고 프로젝트를 시작할 수 있다.

1. python manage.py startproject <프로젝트명>

startproject 뒤에 개발하고자하는 프로젝트 폴더명을 입력한다.

 

2. cd <프로젝트명>

만든 프로젝트로 폴더 이동한다.

 

3. 프로젝트 안에는 장고 프로젝트를 runserver하거나, 관리자를 추가하는 등의 설정이 가능한 manage.py 파일이 있다. 

python manage.py <앱명>

시작할 앱의 이름을 입력하여 앱을 만든다.

 

4. python manage.py runserver

장고 프로젝트를 실행한다.

 

 

장고의 기본 포트는 8000번이고, 만약 포트 번호를 1234로 바꾸고자 한다면 python manage.py runserver 0.0.0.0:1234  이렇게 입력하면 된다! 

이제 크롬에서 localhost:8000을 들어가면 로켓발사 모양이 나온다. 장고를 처음시작했을 때 나오는 화면이다.

 

 

 

startproject로 만든 프로젝트 폴더에 들어오면 내가 만든 app폴더, project폴더, 그리고 장고에서 지원하는 데이터베이스 sqlite3, manage.py가 있다. 

 

 

app 폴더에서 자주 쓰이는 파일은,  views.py, models.py이고, 

이 외에 템플릿(html파일), 이미지파일, css파일, js파일 등등을 저장할 것이다.

views.py는 url과 템플릿을 연결하여 무엇을 보여줄 것인지 코딩하는 부분이고,

models.py는 데이터베이스에 사용할 테이블을 작성한다고 생각하면 된다.

 

 

project에서 자주쓰이는 파일로는, 이 장고프로젝트를 관리하는 settings.py와, app/views.py에 작성한 url을 연결할, urls.py가 있다.

 

 

먼저, project의 settings.py를 열어,

ALLOWED_HOSTS = ['*'] // []으로 되어있떤 부분을 ['*']으로 변경

INSTALLED_APPS 에 'app'을 추가했다.

- ALLOWED_HOSTS는 이 사이트에 접속가능하게할 ip를 입력하면 되는데, '*'를 입력하면 모두 접속이 가능해진다.

- INSTALLED_APPS에는 내가 만든 앱의 이름을 추가하면 된다.

- DEBUG = True 는 디버깅을 할 것인지 말것인지 설정하는 부분인데, DEBUG 를 True로 해놓으면, 사용자가 url을 잘못입력했을때, 추후에 내가 설정하는 모든 url이 노출되어 보안에 취약하게 되니, 테스트 할때만 DEBUG를 True로 해놓고, 나중에 정식으로 사이트를 열 떄에는 DEBUG를 False로 바꾸어야 한다.

 

 

이제 app/views.py에 테스트로 몇가지 페이지를 띄워보려한다.

 

from django.http import HttpResponse, JsonResponse

from django.shortcuts import redirect

를 추가했다.

 

HttpResponse는 내가 작성한 글을 그대로 페이지에 띄우는 것이고,

JsonResponse는 Json형태 ( 파이썬의 딕셔너리 형태 )를 페이지에 띄우는 것이고,

redirect는 다른 페이지로 바로 이동을 의미한다.

이 세가지를 테스트해볼 함수로 httpresponse, jsonresponse, _redirect를 만들었다.

 

그리고, project/urls.py에서는 이 함수를 url에 연결하면 된다.

from <앱명> import views 를 입력하여 views.py를 불러온다.

urlpatterns에 

path('<url>', views.<views에서 입력한 함수명>)을 추가하면 url이 만들어진다.

 

파일을 저장하면, python manage.py runserver로 띄워놨던 게 자동으로 재실행되고, 내가 추가한 url을 localhost:8000/<url>로 접속하면 된다!

아래는 httpresponse에 hello?를 입력한 것이 정상적으로 출력된 모습이다.

아래는 jsonresponse에 {"test":"hello?"}를 입력한 것이 정상적으로 출력된 모습이다.

localhost:8000/_redirect를 입력해도, 한 1초도 안되어서 jsonresponse로 페이지이동을 하게 된다.

urls.py에 이미 작성되어있는 admin 페이지는 localhost:8000/admin으로 들어가면 아래와 같이 뜨게 되는데, 추후에 models.py에서 모델을 작성하면서 이 어드민 페이지에서 데이터베이스를 관리할 수 있다.

 

튜토리얼1의 마지막으로, app/views.py에서  return render(request, 'template.html')로 , 템플릿을 연결해 놓은 부분이 있는데, localhost:8000/template으로 들어가면, template을 찾을 수 없다고 나온다.

 

이부분은 app 폴더에서 templates 폴더를 생성하고, 그 안에 template.html을 만들면 된다.

 

temlate.html안에는 hello????를 작성해놨다.

 

 

장고를 재실행하고 localhost:8000/template으로 들어가면, hello???가 입력된 template.html이 정상적으로 뜨게 된다.

 

 

튜토리얼 2에서는 템플릿에 내가 원하는 다양한 변수들을 전달하는 방법,

템플릿에서 사용자가 입력한 값을 views.py로 받아오는 방법 등을 작성할 것이다. 

 
728x90
반응형
댓글