반응형

이 프로젝트도 마찬가지로 책 'Django 한 그릇 뚝딱'의 Chapter 3을 보며 실행해보았습니다. 책의 저자님께 다시 한 번 감사말씀 드립니다.
프로젝트와 app 구성하기
- 작업할 폴더를 생성하고 이동합니다. 저는 RestaurantShare 폴더를 생성 - 가상환경 접속 - 라이브러리 설치 까지 완료했습니다.
mkdir RestaurantShare
cd RestaurantShare
code .
virtualenv venv
source venv/Scripts/activate
pip install django
- 프로젝트를 생성하겠습니다. 프로젝트 이름은 RestaurantShare로 하겠습니다.
django-admin startproject RestaurantShare
cd RestaurantShare
ls # 결과로 manago.py 와 RestaurantShare/가 있으면 된다.
- 두 개의 app을 만들겠습니다. shareRes와 sendEmail입니다.
python manage.py startapp shareRes
python manage.py startapp sendEmail
- 이제 app을 등록하러 가겠습니다.
- RestaurantShare > RestaurantShare > settings.py로 이동합니다.
- INSTALLED_APPS에 두 app을 추가합니다.

URL 설정하기
이제 프로젝트 화면을 구성하겠습니다.
- 책의 저자의 github에서 파일을 다운받습니다. (project > RestaurantShare 에 있는 html파일 4개 입니다.)
https://github.com/doorBW/Django_with_PracticeExamples
GitHub - doorBW/Django_with_PracticeExamples: "실전 예제로 배우는 Django" 서적에 대한 예제 문제들 및 코드
"실전 예제로 배우는 Django" 서적에 대한 예제 문제들 및 코드를 포함하고 있는 repository 입니다. - GitHub - doorBW/Django_with_PracticeExamples: "실전 예제로 배우는 Django" 서적에 대한 예제 문제들 및 코드
github.com
- 위 4개의 파일은 모두 shareRes app에서 사용할 것입니다.
- shareRes 폴더 안에 templates폴더를 만들고, 그 안에 shareRes 폴더를 만들고, 이 4개의 파일을 넣습니다. 이때 파일명에서 '-init'은 지웁니다.

- 메인 화면의 url 설정부터 시작하겠습니다.
- RestaurantShare > RestaurantShare > urls.py로 이동합니다.
- 다음과 같이 path를 추가합니다.

- 이제 각 app에 urls.py를 만들고 코드를 입력합니다.
- RestaurantShare> sendEmail > urls.py을 먼저 입력하겠습니다. (언제나 저장 잊지 마세요!)
# -*- coding:utf-8 -*-
from django.urls import path, include
from . import views
urlpatterns = [
path('send/', views.sendEmail)
]
- RestaurantShare> sendEmail > views.py로 이동합니다. 코드를 추가로 입력합니다.

- RestaurantShare> shareRes > urls.py로 이동합니다. 코드를 추가로 입력합니다.
# -*- coding:utf-8 -*-
from django.urls import path, include
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('restaurantDetail/', views.restaurantDetail, name='resDetailPage'),
path('restaurantCreate/', views.restaurantCreate, name='resCreatePage'),
path('categoryCreate/', views.categoryCreate, name='cateCreatePage')
]
- RestaurantShare>shareRes> views.py로 이동합니다. 코드를 추가로 입력합니다.

- terminal에 python manage.py runserver를 입력하여 지금까지의 결과물을 확인해봅시다.



우리가 설정한 문자열이 잘 출력됩니다.
템플릿 설정하기
- 이제 각 화면에 html 파일을 연결하겠습니다. render함수를 이용합니다.
- RestaurantShare>shareRes>views.py로 이동합니다. 원래의 return은 주석처리 한 후에 다음과 같이 수정합니다.

- 다시 웹 서버에 접속하면 다음의 화면이 보입니다.


CRUD - Create
CRUD는 Create, Read, Update, Delete를 통틀어 이르는 말로, 웹 페이지에서 매우 기초적이면서도 핵심적인 역할을 합니다. 그 중에서 Create를 먼저 진행해보겠습니다.
- 카테고리의 생성, 추가는 우측의 +버튼을 누르면 됩니다. 책의 저자는 하나의 맛집이 하나의 카테고리에 속하는 방법으로 프로젝트를 구현합니다.
- RestaurantShare > shareRes > models.py로 이동하여 다음 코드를 추가하여 모델을 정의하겠습니다.
class Category(models.Model):
category_name = models.CharField(max_length= 100)
- 이제 데이터베이스에 반영하겠습니다.
- terminal에 다음 명령어를 입력합니다.
python manage.py makemigrations
python manage.py migrate
- 다음 화면이 현재의 웹 페이지 입니다.

- 이제 Create 로직을 구현하겠습니다.
- RestaurantShare> shareRes > urls.py로 이동하여 코드를 추가합니다.

- RestaurantShare> shareRes > views.py로 이동하여 해당 함수를 정의하는 코드를 추가합니다.
def Create_category(request):
return HttpResponse("여기서 category Create기능을 구현합니다.") #에러 확인용
- 추가할 카테고리명을 입력한 후 '추가'를 눌렀을 때 다음의 화면이 나타난다면 에러는 없는 겁니다. 그럼 이제 사용자가 입력한 문자열을, 해당 문자열의 이름으로 카테고리 생성 및 데이터베이스에 저장하는 작업을 하겠습니다.
- RestaurantShare> shareRes > views.py에서 Create_category 함수의 내용을 작성합니다.


- 다시 웹 페이지로 가서 추가할 카테고리명을 입력한 후 '추가'를 누르면 메인 화면으로 돌아갈 것입니다.
- 이렇게 Create 작업이 끝났습니다.
다음 시간에는 CRUD의 READ 작업부터 시작하겠습니다.
감사합니다.
'웹 개발 실습 > Django' 카테고리의 다른 글
| [Django]_맛집 공유 사이트 만들기 (3) 이메일 보내기 (0) | 2023.07.31 |
|---|---|
| [Django]_맛집 공유 사이트 만들기 (2) READ, DELETE 그리고 Restaurant에 대한 CRUD (0) | 2023.07.30 |
| [Django]_ToDoList 만들기 (5) 데이터베이스에 저장하기 (0) | 2023.07.30 |
| [Django]_ToDoList 만들기 (4) 입력한 메모 출력하기 (0) | 2023.07.30 |
| [Django]_ToDoList 만들기 (3) HTML 템플릿 사용하기 & 테이블 사용하기 (0) | 2023.07.30 |