Django 개발 준비

Django란 Web Program을 쉽고 빠르게 만들어 주는 Web Framework

1️⃣ Web Framework

  • Web Program을 만들기 위한 스타터 키트
  • 아래와 같은 웹 프로그램을 위해 만들어야 할 기능을 미리 구현해 놓은 것

 

from django.http import HttpResponse

def index(request):
	return HttpResponse("Hello World")

 

 

2️⃣ Django는 튼튼한 Web Framework

  • Django는 보안 공격을 기본으로 잘 막음.
  • Ex) SQL Injection, XSS(cross-site scripting), CSRF(cross-site request forgery), clickjacking
  • 보안 공격에 대한 코드를 짤 필요 없음.
SQL Injection
악의적인 SQL을 주입하여 공격하는 기법 (예시 : 로그인 폼에 ' OR '1' ='1 같은 SQL을 삽입하여 데이터베이스를 조작하는 방법)

XSS
Javascript를 삽입해 공격하는 기법 (예시 : 댓글 입력 창에 <script>alert('XSS');</script> 같은 Javascript를 삽입해 사용자 브라우저에서 악성 코드를 실행.)

CSRF
위조된 요청을 보내는 공격 방법

clickjacking
사용자의 의도하지 않은 클릭을 유도하는 공격 방법

 

3️⃣ Django에는 여러 기능이 준비되어 있음

  • 필요로 하는 Web Program 개발을 위한 도구와 기능이 대부분 준비되어있음

 

 

Django 개발 환경 준비

1️⃣ Python 가상 환경

  • Python Project를 진행할 때 독립된 환경을 만들어주는 도구
  • 원하는 버전의 파이썬과 라이브러리를 쉽게 설치해 사용 가능

 

C:\users\pahkey> cd \
C:\> mkdir venvs
C:\> cd venvs # macOS 사용자의 경우 홈 디렉터리(/users/pahkey) 밑에 venvs 디렉터리 생성

C:\venvs> python -m venv mysite # Python 가상 환경을 만드는 명령어 (macOS : python -> python3)

 

  • python -m venv : python module 중 venv 라는 module을 사용한다는 의미
  • mysite : 생성할 가상 환경 이름
C:\venvs> cd C:\venvs\mysite\Scripts # 가상 환경이 있는 디렉터리 진입
C:\venvs\mysite\Scripts> activate # 가상 환경 실행
(mysite) C:\venvs\mysite\Scripts>
(mysite) C:\venvs\mysite\Scripts> deactivate # 가상 환경 벗어남

 

  • macOS의 경우는 다음과 같다.
pahkey@mymac venvs % cd mysite/bin
pahkey@mymac bin % source activate # 가상환경 실행
(mysite) pahkey@mymac bin %

 

 

2️⃣ Django 설치

  • 가상 환경에서 Django 설치 (버전)
  • "pip install django" (특정 버전 설치 가능 : pip install django==4.1.2)

 

Django Project 생성

  • Project : 하나의 Web-site
  • Project 내부에는 여러 개의 "App"이 포함될 수 있고, 각각 독립적인 기능을 담당하는데 이들이 모여 하나의 Web site 구성 (예 : 관리자 기능을 담당하는 관리자 앱, 사용자의 로그인과 인증을 처리하는 인증 앱같은 Django 기본 제공 앱도 있고 개발자가 직접 만들어 추가하는 앱도 존재)
  • 여기서 말하는 App은 Android, iOS App과는 다른 의미.. (특정 작업을 처리하는 작은 Module 로 프로젝트를 구성하는 개별적인 기능 단위)

1️⃣ Project 생성

  • Django Project는 여러 개가 될 수 있으므로 root Project 생성은 필수
C:\Users\pahke> cd \
C:\>mkdir projects
C:\> cd projects
C:\projects> # root directory (macOS : /Users/pahkey 하위에 projects 디렉터리 생성)

C:\projects> C:\venvs\mysite\Scripts\activate
(mysite) C:\projects

(mysite) C:\projects>mkdir mysite
(mysite) C:\projects>cd mysite
(mysite) C:\projects\mysite>django-admin startproject config . # Django Project 생성

 

  • . 기호는 현재 디렉터리를 의미
  • 디렉터리를 생성하지 않고 바로 생성하는 방법이 있지만, 이름이 중복되어 관리가 복잡해질 수 있으므로 위의 방법을 추천함.

2️⃣ 개발 서버 구동하고 웹 사이트 접속해보기

  • python manage.py runserver : 서버 구동

 

  • "You have 18 unapplied migration(s). : Django가 제공하는 기본 데이터베이스 구성을 위한 초기 설정이 완료되지 않았다는 의미
  • 마지막에 제공되는 문장을 보면 Django server가 "http://127.0.0.1:8000/" 로 시작되었다는 것과 서버를 중지하기 위해서는 Ctrl + C를 입력하라는 내용
  • 개발을 위해 실행되는 Django 서버는 localhost로 실행되기 때문에 로컬 서버라고 부름

  • http://127.0.0.1:8000 <=> http://localhost:8080 (둘 다 현재 PC를 가리키는 IP Address)
  • 다른 사람이 내가 만든 사이트에 접속하려면 고정 IP Address or pybo.kr 과 같은 Domain Address 가 필요

3️⃣ mysite 가상 환경에 간단하게 진입

❶ Window

  • mysite.cmd 같은 파일 작성
@echo off
cd c:/projects/mysite
c:/venvs/mysite/scripts/activate
  • .cmd 가 붙은 파일은 batch 파일이라 부르며, 명령어 입력과 실행을 한 번에 해주는 파일
  • 어느 곳에서나 수행되게 하려면 디렉터리를 시스템의 환경 변수 PATH에 추가해야 함

❷ macOS

  • home directory의 .zshrc 파일에 alias 추가
vim ~/.zshrc

# zshrc 파일 안에 삽입
alias mysite='source /Users/b._.chan/Documents/Django/projects/venvs/mysite/bin/activate'

source ~/.zshrc # 적용

 

Editor 사용

  • Visual Studio Code와 Pycharm 둘 중 하나 사용
  • 설치 과정은 생략

settings.py

  • Django 설정값이 들어 있음
  • 언어와 시간 값을 한국 값으로 변경
(... 생략 ...)
LANGUAGE_CODE = 'ko-kr' # 언어 한국어로 변경

TIME_ZONE = 'Asia/Seoul'

(... 생략 ...)

'Back-end > Django' 카테고리의 다른 글

Django 기본 요소 (URL과 View, Model)  (1) 2024.12.29
Django CSS  (3) 2024.10.22
Django HTML  (3) 2024.10.09
Django (Web Programming)  (3) 2024.09.04