본 글은 파이썬 웹 프로그래밍을 단련하기 위해
<Django 한 그릇 뚝딱> 도서의 프로젝트를 연습하고 기록한 글이다.
코드를 해석하기도 하지만 코드를 입력하는 흐름을 이해하고
중간 중간 진행하면서 막히는 에러 부분을 어떻게 해결했는지까지 정리하는 게 이 글의 최종 목표이다.
그럼 막간 책 표지 소개!
아무턴 지금부터 첫번째 프로젝트, To Do List 만들기 시작!
1. 프로젝트 구성하기
프로젝트를 구성하는 방법으로 Github를 사용한다.
Github 계정에 로그인해 저장소를 만들고 <> Code 초록색 버튼을 눌러 URL을 복사한다.
필자의 경우 아래와 같이 설정하였다.
복사했으면 Gitbash 창을 켜서 우리의 프로젝트 공간으로 이동하고
cd 명령어를 통해 좀 전에 만든 저장소 이름으로 만들어진 폴더로 이동한다.
git clone [복제한 URL]
cd [해당 폴더 이름]
용이한 프로젝트 관리를 위해 가상환경을 세팅해야한다.
해당 폴더에 가상환경 생성부터 착착하고 가상환경에 입장한다.
virtualenv venv # 가상환경 생성하기
source venv/Scripts/activate # 가상환경에 입장하기
'''
이후 가상환경에 있는지 위치를 가늠하기 위해 which python을 입력하고 venv 가 나오는지 확인할 것!
'''
가상환경을 만들고 입장했으니 그 안에 장고를 설치한다.
pip install django
이후 과정은 프로젝트 내 다양한 폴더를 보면서 원활하게 진행하기 위해
Git bash가 아닌 VS code로 넘어가서 진행하고자 한다.
빠르게 넘어가려면 'code .'를 누르면 끝!
이제는 본격적인 장고 프로젝트를 시작할 시간!
아래의 명령어를 입력해 장고 프로젝트를 만든다.
앞서 만든 가상환경 내에서 잘 만들고 있는지 확인하려면 설치 전, which python 해보기!
django-admin startproject 프로젝트명
<더 알아보기>
본격적으로 app을 구성하기 전, 앞으로 만날 무수한 에러를 그나마 줄이기 위한 방법을 정리해보았다.
많은 분들이 그렇게 하시듯, 필자는 아래와 같은 방법을 사용하고 있다.
- 수시로 ls 명령어 입력 (내가 도대체 어디에 있는지 알기 위함)
- 수시로 which python 명령어 입력 (이곳이 가상환경인지 아닌지 알기 위함)
- 명령어 입력시 tab 사용 (실제로 있는 파일인지 바로 알 수 있는 방법 중 하나)
- 그외에 무수한 에러가 생길 시 구글링, stackoverflow 글 참고 (최신 글일 수록 좋음)
2. Application 구성하기
To Do List 프로젝트를 구성하는 앱을 설치하기 위해 manage.py 파일이 있는 위치에서 앱을 만든다.
필자가 정한 앱 이름은 'to_do_app' 이었다.
python manage.py startapp to_do_app
앱을 만들었다면 앱을 등록하는 게 인지상정!
방금 만든 앱을 해당 폴더의 settings.py에 들어가 아래와 같이 글을 추가해준다.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'to_do_app', # 새로 등록한 앱
]
앞으로 앱을 만들 때마다 위와 같이 settings.py에 들어가 꼭 추가해주는 게 필수이다.
3. URL 설정하기
프로젝트를 실제로 실행시키기 위해서는
python manage.py runserver
이와 같이 출력하면 http://127.0.0.1:8000/ 형태의 URL이 출력된다.
접속해서 확인해서 아래와 같은 페이지가 뜨면 정상!
앞으로 사용자가 이 링크에 접속하려고 할 때
우리가 원하는 것은 기본 ToDoList 화면을 보여주는 것이다.
그러기 위해서는 프로젝트 내 urls.py 에서 app으로 처리를 넘겨주어야 한다.
from django.contrib import admin
from django.urls import path, include # 아래 6번에서 include 함수를 사용하고 있으니 새롭게 import 해줘야함.
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('to_do_app.urls')) # to_do_app이라는 앱의 urls.py 파일로 처리 넘기기
이후 프로젝트에서 to_do_app의 urls.py에도 이어서 처리해줘야한다.
파일이 없기 때문에 당황하지 않고 to_do_app 폴더 안에 urls.py 파일을 새롭게 만든다.
이후 이전과 같이 필요한 함수를 import 하고 urlpatterns를 작성해 동일하게 진행한다.
from django.urls import path
from . import views
urlpatterns = [
path('', views.index)
]
위의 언급한 index 함수를 처리하도록 했기 때문에 사용자에게 어떤 화면이 보여지는지 처리해주는 view.py 에서
index 함수를 아래와 같이 만들어준다.
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(request):
return HttpResponse('to_do_app first page')
# HttpResponse : 단순히 인자로 받은 문자열을 사용자의 화면에 보여주는 함수
이후 실행 결과를 살펴보기 위해 동일하게 서버를 돌려주면
python manage.py runserver
아래와 같은 화면이 뜰 것이다.
지금까지 하나의 URL에 대해 우리가 보여주려는 문자열을 보여주는 법을 배웠다.
앞으로 글자 외에 다양한 요소를 출력하는 법, MVC 패턴을 따라하는 법 등 자세한 내용은
추후의 게시물에서 작성하도록 하겠다.
to be continued...
'Django' 카테고리의 다른 글
[Django] To Do List 만들기 (3) - CRUD 따라하기 (0) | 2023.08.02 |
---|---|
[Django] To Do List 만들기 (2) - HTML 템플릿, MVC 패턴 (0) | 2023.07.28 |