본문 바로가기
카테고리 없음

[TML]내일배움캠프 - Django 시작하기 (기초)

by Byeong 2024. 4. 8.

 

Django 

 

django는 python기반의 프레임워크이다.  그런데 '프레임워크'는 또 뭐지?? 

 프레임워크는 다른 사람이 만들어둔 도구이다. 우리는 이 도구를 사용해서 프로젝트를 진행하고 효율성과 활용성을 높이기 위해 꼭 필요한 부분이다. 

 

즉, django는 웹페이지를 만들기 위한 하나의 도구인 것이다.

이 도구를 잘만 사용한다면 나만의 웹페이지도 제작이 가능하다. 

 

 

django를 사용하기 전 django의 기능에 대해 알아보면 장고는 클라이언트와 서버를 연결해 주는 주체이다.

 

클라이언트와 서버는 뭔가??

 

클라이언트와 서버를 많이는 들었을 것이다. 쉽게 생각한다면 클라이언트는 요청을 보는 것이고 서버는 요청을 받아 다시 응답을 해주는 방식이다. 

 

 만약에 내가 구글홈페이지에 접속을 주소창에 입력하여 이동한다. 그러면 이것을 구글 HTML을 가지고 있는 서버에서 이것을 받아 다시 나에게 보내는 주는 방식이다.  그리고 HTML을 보내준 서버가 또 다른 곳에서 정보를 요청한다면 클라이언트가 되고 요청을 받은 쪽은 서버가 된다. 

클라이언트 -> requests -> 서버 -> responses -> 클라이언트

 

이런 방식으로 진행된다.  브라우저는 서버에서 보내온 HTML을 이쁘게 랜더링 해서 보여주는 것이다.

 

django는 여기서 요청 requests 에따라 적절한 응답 responses을 만들어 주는 주체이다.

 

웹페이지를 제작하며 많은 문제와 같은 패턴 pattern 이 발생했는데 이 문제를 디자인 패턴이라고 한다. 

django는 이 디자인 패턴들을 해결하기 위한 도구인 것이다. 

 

djang에서의 디자인 패턴 3가지 MTV(Modael, Template, view)로 나눴다.

Modael은 데이터베이스 처리

Template는 보이는 화면상의  처리

view 메인 로직 부분으로 modeal과 template를 연결해 준다. 

 

디자인 패턴을 MTV 3가지로 나눠 둔 이유는 각각의 문제 해결을 쉽게 하기 위해서 이다.

request->urls -> viwe -> Template, modael(주고받기) -> viwe -> response

 

 

다 이해하기보다는 '아 그렇구나'하고 지나가자

 

 


 

django 시작하기

 

 시작하기 전에 가상환경을 만들어 줘야 한다.

그 이유는 내가 A, B 두 개의 프로젝트를 진행한다고 생각해 보자 두 개의 프로젝트가 각각 다른 프로그램을 이용해야 한다면 A 프로젝트용 컴퓨터하나 B프로젝트용 컴퓨터 하나 이런 식으로 프로젝트를 진행해야 한다. 하지만 가상환경 venv가 있다 하면 두 가지 프로젝트를 각각의 가상환경을 통해 프로그램을 설치하여 진행을 하면 된다. 

 

그래선 가상환경을 만들어 보자  

 

1. vscode에서 가상환경 설치 방법

commend + shift + p

env 입력 enter

venv enter 

가상환경 설치완료

 

2. turminal 설치 방법

python -m venv venv  생성코드 

source venv/bim/activate 가상환경 활성화

 

# 내가 설치한 프로그램 공유하기 

협업을 진행할 경유 같은 버전의 프로그램과 같은 프로그램들을 사용해야 한다. 그렇지 않을 경우 많은 문제가 발생한다. 

그런 경우를 방지하기 위해 아래의 파일을 만들어준다.

pip freeze > requirements.txt

 

그러면 내가 가상환경에 설치란 프로그램을 그대로 text로 받아 올 수 있다.  requirements.txt를 install 해준다면 쉽게 설치가 가능하다.

 


Django 설치 

 

가상환경에서 django를 설치해 준다. 

pip install django==version

django 프로젝트

 

project생성  project는 하나의 서비스로 지금부터 우리가 만들 웹페이지 같은 것이다.

 

아래의 코드를 통해 프로젝트를 생성한다. 

django-admin startproject <project name> .

 

엄청 많은 파일이 생성되는데 지그음 setting.py, urls.py 만 알아두자 

설정 관리와 어떤 요청을 처리할지 결정하는 파일이다.

 

 

다음으로 아래의 코드를 입력한다면 서버와의 연결 주소가 뜬다.

python runserver manage.py

 

command 키와 같이 클릭한다면 웹페이지로 연결이 된다. 로켓이 뜬다면 성공!!

#영어가 많이 뜬다고 무서워하지 말자

 


app 만들기

 

app은 project 즉 서비스의 기능들을 말하며 꼭 app에는 한 가지 기능만 있을 필요도 없고 여러 가지 기능 또는 app이 없어도 된다. 

그래도 app을 만들어 따로 관리하는 것이 유지보수에 편하다. 

 

app은 딱 두 가지 1. 생성, 2. 등록만 알면 된다.

python manage.py stertapp <App name> 생성

 

setting.py에서 등록해 주면 된다.

 

app을 제작한다면 여러 파일이 생기는데 여기에서도 두 가지 modls.py 데이터를 관리, views.py 요청 정보를 관리하고 결과를 반환? 하는 파일이라고 알아두자

 

 


마무리 

 

전반적인 django가 무엇인지에 관해 공부를 진행했다. 아직 실습을 진행을 하지 않았지만 하나하나 다 이해하기보다는 지금에서는 이렇게 사용하는구나 정도로 이해하고 넘어가고 사용하면서 더 자세하게 공부해 나가야겠다.