본문 바로가기

About coding/Today I learned

2023년 4월 3일 TIL [#Django 입문_1]

 

 

우리 캠프에서는 수준별 맞춤 교육을 위해

이제 후발대와 선발대를 나누기 시작했고

 

오늘 나는 후발대에 자원했다.

 

그리고 새벽 2시에 나는 다짐한다.

이 캠프가 끝날 때에는,

 

반드시 맨 앞 줄에 있을 것이다.

 

 


오늘의 학습 계획

_장고 프레임워크 둘러보기

:생활코딩 장고프레임워크 1회독(2배속) > 2회독 직접 쳐보기

_튜터님이 만들어주신 파이썬 예제

:함수 예제 다 풀기


주요 개념 정리

_Django를 쓰는 이유: 기존 웹서버 방식은 미리 페이지를 만들어두고 클라이언트 요청 시마다 보여주는 것. 때문에 변동사항이 생기면 그에 해당하는 페이지를 새로 만들어야해서 불편하다. 그러나 웹어플리케이션서버를 쓰면 유지보수 하기가 너무 좋다. views.py 에 공장만 바꿔주면 모든 생산물들이 한번에 바뀌는 폭발적 효과! 요청이 있을 때마다 그 때 그 때, 새로운 웹페이지를 찍어내서 반환하므로 차별점 생겼을 때 반영하는 작업을 자동화할 수 있다. 그런 점을 응용해서 각각의 유저마다 개인화된 정보를 만들어줄 수도 있음. 사용자가 들어올 때마다 웹페이지가 생성되는 거니까.

 

_Django 설치 과정:

가상환경 설치 후, 터미널에

pip install django

**vs코드 기준, 가상환경 설치할 때, 임시 파이썬 파일을 하나 만들어두지 않으면 인터프리터 venv가 안 잡히는 경우가 있다. 그럴 땐 venv를 다시 지우고 새로 임시 파이썬 파일을 만든 후 venv 깔고 터미널 재시작.

django-admin

 

 

이라고 치면 서브 명령들이 주르륵 나옴. 그 중에서 startproject

django-admin startproject <프로젝트이름> .
#맨 뒤에 . 을 찍으면 현재 경로에서 생성한다는 뜻.
#강의에서는 신규프로젝트이름이 myproject

그러면 왼쪽 카테고리에 myproject 폴더 생기고 그 안에 내용물이 들어있음.

#세팅스는 프로젝트를 운영하는데 필요한 여러가지 설정들. 중요.

#urls는 사용자가 접속하는 경로에 따라

   그 요청을 누가 처리해줄것인가 지정하는 곳. 라우팅을 하는 곳.

#manage.py는 프로젝트진행하며 여러가지 기능이 들어가 있는 유틸리티 파일.

 

 

 

 

이제 실행할 때는 manage.py를 쓰면 됨.

python manage.py

하면, 마찬가지로 여러가지 서브 명령들이 나오고

python manage.py runserver

이렇게 하면 자동으로 8000번 포트로 연결되며 실행된다. 만약 안되면 runserver 뒤에 포트번호 네자리 정하면 됨.

그럼 결과로 아래와 같이 나오면 성공적으로 실행된 것!

터미널결과. 그리고 좌측 탐색기에 db.sqlite3도 깔림.
출처: 유튜브 생활코딩_ 포트의 개념 이해가 잘 나온 도식

 

이제 브라우저 주소창에 아래와 같이 입력하면 활성화된 기본 웹페이지가 나옴.

http://127.0.0.1:8000

만약 서버를 끄고 싶으면 ctrl+c

 

아까 아래와 같이 django-admin startproject으로 myproject라는 프로젝트를 만들었는데,

 

 

 

 

 

 

 

 

그러나 나의 실제 어플리케이션은 프로젝트 안에서 구현하는 것이 아니라,

app 이라는 더 작은 단위를 만들어서 그 안에서 구현하게 된다.

그리고 프로젝트를 하다가 서로 연관된 로직들을 모아서 그루핑하고 싶을 때

앱 단위로 그루핑하여 결국 여러개의 앱을 만들어서 정리정돈 하게 된다.

그리고 myproject처럼 각각의 app 안에는 urls.py 파일이 담겨야 한다.

그리고 그 app 안에는 view라는 것을 만들어서 함수들을 적어넣고 진짜 본격적이고 구체적인 구현을 해나가게 된다.

 

출처: 유튜브 생활코딩_장고프레임워크의 작동 방식이 잘 나와있는 그림

전체적인 흐름은 이렇게 된다.

사용자가 정보를 들고 경로로 들어오면 > 들어온 경로를 어느 app에게 이어줄 것인가 project의 urls.py에서 코딩 >

> app 안에 있는 urls.py에서도 목표한 view의 목표한 def에 할당 > 함수가 작동한 뒤 모델이라는 편리한 수단을 통해

> 최종적으로 정보를 데이터베이스에 기록 >

> 다시 데이터베이스에 있는 정보를 받아서 > html json xml 형식으로 만든 다음 사용자에게 보여줌.

 

이제 앱 설치

django-admin startapp <앱이름>
#강의에서는 myapp

이렇게 myapp 폴더가 생기고 그 안에 내용물이 새롭게 들어참.

 

이렇게 구현을 위한 설치가 끝났다.


복습용 키워드 메모장:

#프레임워크란

#Django 의 용도

#Django 설치과정 머리 속으로 복기

#라우팅 과정


작은 질문들:

Q.장고는 venv에 깔아야 하는건가? 그냥 깔아야 하는 건가?

> 가상에 깔아야 함. 그러나 아무 .py파일도 없이 가상환경을 설치하면 venv로 인터프리터 자동 설정이 안 되는 버그(?)가 있음. 때문에 임시 파일을 만들고 venv 설치하길 생각하자.

 

 

'About coding > Today I learned' 카테고리의 다른 글

2023년 04월 05일 TIL [#Django 입문_3]  (1) 2023.04.06
2023년 04월 04일 TIL [#Django 입문_2]  (0) 2023.04.05
2023년 03월 31일 TIL  (0) 2023.03.31
2023년 03월 30일 TIL  (0) 2023.03.30
2023년 03월 29일  (0) 2023.03.29