DOMDOM
0posts
today
total
personal posts · since 2021

Fragments
of a day.

A small notebook for slow moments slipping by.

2023 IT Creator
2024 Food Creator
2025 News Creator
2026 News Creator

Latest Posts최근

tistory view

Back to Home

[Django] 장고 튜토리얼 1. 장고 시작하기

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
반응형

Comments

Thanks for staying up late.

keep wandering · keep listening