본문 바로가기
웹 개발 실습/Django

[Django]_엑셀 계산 사이트 만들기 (1) app의 웹 사이트, admin 화면 만들기

by ssolLEE 2023. 8. 1.
반응형

 

이 프로젝트도 마찬가지로 책 'Django 한 그릇 뚝딱'의 Chapter 4을 보며 실행해보았습니다. 책의 저자님께 다시 한 번 감사말씀 드립니다.

 

 

 

이번 프로젝트에서는 이전 프로젝트에서 한 것에 더하여 로그인 및 회원 가입을 추가로 구현할 것입니다. 

 

가상 환경 접속 및 라이브러리 설치

  • 먼저 작업할 폴더를 만들고 가상 환경으로 들어가 주세요. 저는 Excelcalculator 라는 폴더에서 작업합니다.
mkdir Excelcalculator
cd Excelcalculator/
virtualenv venv
source venv/Scripts/activate
  • requirements.txt를 생성하고, 다음을 입력한 후 저장합니다.

설치할 라이브러리 명을 기입합니다.

  • terminal에 다음 명령어를 입력하여 라이브러리를 설치합니다. 
pip install -r requirements.txt

 

프로젝트 설정 및 앱 등록하기

  • 다음의 명령어를 입력하여 프로젝트와 app을 생성합니다. 
django-admin startproject ExcelCalculate   # 프로젝트 이름 : ExcelCalculate
cd ExcelCalculate 
python manage.py startapp main          # 앱 1: main
python manage.py startapp sendEmail        # 앱 2: sendEmail 
python manage.py startapp calculate        # 앱 3: calculate
  • ExcelCalculate > ExcelCalculate > settings.py 로 이동한 후 다음과 같이 app을 등록합니다.

  • 책의 저자의 github에서 html파일을 다운받습니다.

https://github.com/doorBW/Django_with_PracticeExamples/tree/master/project

 

app의 url처리와 각각의 사용자 함수 정의

  • main > templates > main 폴더를 만든 다음, html파일을 붙여넣기 합니다.

  • 각 app의 url 설정을 하러 가겠습니다.
  • ExcelCalculate > ExcelCalculate > urls.py 로 이동하여 다음의 path를 추가합니다.
from django.urls import path, include

path('email/', include('sendEmail.urls'), name="email"),
path('calculate/', include('calculate.urls'), name="calculate"),
path('', include('main.urls'), name="main"),

 

  • 이제 각 app의 urls.py로 가겠습니다. urls.py가 없는 상태이므로, 파일을 만들어줍니다.
  • url 처리 후, views.py에 가서 함수를 정의합니다.
  •  ExcelCalculate > sendEmail > urls.py, views.py  로 이동하여 다음을 입력합니다. 
## ExcelCalculate > sendEmail > urls.py

from django.urls import path
from . import views

urlpatterns = [
	path('send', views.send, name="email_send")
]

## ExcelCalculate > sendEmail > views.py

from django.shortcuts import render
from django.http import HttpResponse

# Create your views here.
def send(request):
    return HttpResponse("sendEmail, send function!")
  •  ExcelCalculate > calculate > urls.py, views.py  로 이동하여 다음을 입력합니다. 
## ExcelCalculate > calculate > urls.py

from django.urls import path
from . import views

urlpatterns =[
    path('', views.calculate, name="calculate_do")
]

## ExcelCalculate > calculate > views.py

from django.shortcuts import render
from django.http import HttpResponse

# Create your views here.
def calculate(request):
    return HttpResponse("calculate, calculate function!")
  • 이렇게 사용자가 웹 페이지에서 보이지 않는 부분을 우리는 app에서 처리하였습니다. 
  • 이제 사용자가 보이는 화면의 처리를 가겠습니다.

 

  •  ExcelCalculate > main > urls.py 으로 이동한 후에 코드를 입력합니다.
from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name="main_index"),
    path('signup', views.signup, name="main_signup"),
    path('signin', views.signin, name="main_signin"),
    path('verifyCode', views.verifyCode, name="main_verifyCode"),
    path('verify', views.verify, name="main_verify"),
    path('result', views.result, name="main_result"),
]
  • 위의 코드에서 우리는 메인화면, 로그인, 회원가입, 인증코드 입력, 인증코드 확인, 결과 화면에 대한 url처리를 했습니다. 이제 view.py로 이동하여 각각에 해당하는 함수를 정의하겠습니다. 
  • ExcelCalculate > main > views.py 으로 이동한 후에 함수를 입력합니다.
from django.shortcuts import render, redirect

# Create your views here.
def index(request):
    return render(request, "main/index.html")

def signup(request):
    return render(request, "main/signup.html")

def signin(request):
    return render(request, "main/signin.html")

def verifyCode(request):
    return render(request, "main/verifyCode.html")

def verify(request):  # 인증이 완료되면 메인 화면으로 보내줘
    return redirect('main_index')

def result(request):
    return render(request, "main/result.html")
  • terminal에 다음 코드를 입력하여 각각의 웹 페이지가 잘 출력되는지 확인합니다. 각각의 주소를 입력하면 됩니다.

      다만 /verify 를 입력한 웹 페이지는 위의 함수에서 설정한 것처럼 메인 화면으로 갑니다.

python managy.py runserver

 

 

superuser 생성 및 로그인

 

  • superuser는 시스템 관리자입니다. 이제 관리자로 로그인을 해보겠습니다. 
  • terminal에서 다음 명령어를 차례대로 입력을 하겠습니다. 
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser
  • 화면의 지시에 따라 Username, Email address, Password를 입력합니다. 이때 Password는 너무 짧으면 경고창이 뜨니(경고창이 떠도 사용이 가능하긴 합니다.), 되도록 8자 이상으로 입력해주세요. 또한 입력내용은 보이지 않지만 입력되고 있습니다. 

  • 웹 페이지 주소에 /admin를 입력한 후 로그인을 합니다.

  • 위와 같은 admin 페이지에서 사용자들이 회원가입한 데이터 등을 관리할 수 있습니다. 

다음 시간에는 이메일 인증으로 회원가입하는 것을 진행하겠습니다.

 

감사합니다.