Django_1)Base

지비지비집·2023년 10월 17일
0

Django

목록 보기
1/14
post-thumbnail

Django는 Python 기반의 대표적인 웹 프레임워크이다.
프레임워크는 개발자들이 핵심 개발에만 집중할 수 있도록 기본적인 구조, 도구, 규칙 등을 제공한다. 이를 통해 개발 속도를 향상 시켜 생산성을 높이며, 유지보수와 확장에 용이하여 품질을 높일 수 있다. 프레임워크는 장점만 있을까? 그렇지 않다. 쉽게 사용할 수 있는 것들의 이면에는 복잡한 로직과 코드가 숨겨져 있다. 모든 구조와 논리를 온전히 이해하려고 파고 든다면, 되려 복잡한 길로 들어선 것일 수 있다. 우리는 Django를 학습함에 있어 이 사실을 항상 기억해두고, Django에서 권장하는 사항들에 깊게 파고 들기보다는 잘 따르는 편이 포기하지 않는 길일 것이다.

Client & Server


웹 서비스에서 가장 기본이 되는 관계이다.
서비스를 원하는 Client가 있고 Server측에 요청을 보내고 이에 응답하는 방식이다.

가상환경(venv)

Python App과 패키지들을 격리하여 관리할 수 있는 독립적인 실행환경

  1. 가상환경 생성
$ python -m venv venv
# 두번째 venv는 가상환경 이름이다.
  1. 가상환경 활성화
$ source venv/Scripts/activate
  1. 가상환경에 필요한 패키지 설치
$ pip install (~~)
# ~~ 안에는 필요한 패키지들을 space로 구분하여 나열
  1. 패키지 목록 저장
$ pip freeze > requirements.txt
# 텍스트 파일 이름도 권장사항

Project & Application

한 프로젝트를 진행함에 있어 여러 기능들을 앱 단위로 나누어 구조를 형성한다.

  1. 프로젝트 생성
$ django-admin startproject firstpjt .
# firstpjt 는 프로젝트 이름, . 은 현재 위치에 라는 의미
  1. 서버 실행
$ python manage.py runserver
  1. 앱 생성
$ python manage.py startapp articles
# 앱의 이름은 '복수형'으로 하는 건 권장사항
# 등록 -> settings.py -> INSTALLED_APPS 에 추가

요청과 응답

Django에서의 요청과 응답의 구조를 파일과 결합하여 이해해보자.

위의 이미지의 순서를 기억한다면, 우리가 코드를 작성하는 순서도 잘 기억할 수 있을 것이다.

1. URLs


위의 코드의 의미는 http://127.0.0.1:8000/articles/ 로 요청이 왔을 때, views 모듈의 index 함수를 호출한다는 의미이다. 그 위의 admin은 Django에서 미리 설정해둔 관리자 페이지로 이후 그 기능들을 사용할 것이다.

2. View


index와 render의 첫번째 인자는 request로 이 또한 django의 권장사항이다.
render 함수는 request 객체와 client에게 제공할 웹 화면을 반환하는 함수이다.

3. Template

위의 코드에서 제공할 html 파일의 경로를 보면 'articles/index.html'이면 앱 폴더 안에 저장해야할까? 그렇지 않다. 앞의 두 경로가 생략되어 있는데 이를 풀어보면 articles/templates/articles/index.html이다. 첫 articles는 app_name이다. 왜 이렇게 되어있는가? 라고 한다면 다시 처음으로 가서 우리는 Django의 내부를 궁금해하지 않기로 했으니 잘 찾아가도록 html 파일의 위치를 생각해보자.

app폴더 -> templates 폴더 생성 -> articles 폴더 생성 -> index.html

profile
"정말 무엇인가를 이해한다면 전문용어를 모르는 사람에게도 설명할 수 있어야 한다." -리처드 파인만-

0개의 댓글