1. framework
웹 서비스 - 누군가 개발해 놓은 코드를 잘 재사용
프레임워크(Framework) : 서비스 개발에 필요한 기능들을 미리 구현해서 모아 놓은 것
- 제공받은 도구들과 뼈대, 규약을 가지고 무언가를 만드는 일
- 특정 프로그램을 개발하기 위한 여러 도구들과 규약을 제공하는 것
장점 : 개발 속도 빨라짐 / 검증된 코드 / 반복을 줄이고 / 협업이 용이
단점 : 선택의 폭이 좁아짐 / 러닝커브가 존재
Django
1. Python으로 작성된 프레임워크
> 파이썬이라는 언어의 강력함과 거대한 커뮤니티
2. 수많은 여러 유용한 기능들
3. 검증된 웹 프레임워크
> 화해, Toss, 두나무, 당근마켓, 요기요 등
> 유명한 많은 서비스들이 사용한다는 것 == 안정적으로 서비스를 할 수 있는 검증
2. 클라이언트와 서버
대부분의 웹 서비스는 클라이언트-서버 구조를 기반으로 동작
클라이언트
- 웹 사용자의 인터넷에 연결된 장치
- Chrome 또는 Firefox와 같은 웹 브라우저
- 서비스를 요청(request)하는 주체
서버
웹 페이지, 사이트 또는 앱을 저장하는 컴퓨터- 클라이언트가 웹 페이지에 접근하려고 할 때 서버에서 클라이언트 컴퓨터로 웹 페이지 데이터를 응답해 사용자의 웹 브라우저에 표시됨
- 요청에 대해 서비스를 응답(response)하는 주체
3. Django 흐름 체크
1. 가상환경 생성
$ python -m venv venv
2. 가상환경 활성화(ON) / 비활성화(OFF)
$ source venv/Scripts/activate
$ deactivate
3. Django 설치
$ pip install django==3.2.18
가상환경은 프로젝트별 패키지를 독립적으로 관리하기 위한 것 -> 패키지를 다시 설치 안하기 위해
4. 가상환경 패키지 목록 저장 / 파일로부터 패키지 설치
$ pip freeze > requirements.txt
$ pip install -r requirements.txt
5. 프로젝트 생성 (# firstpjt = 프로젝트명)
$ django-admin startproject firstpjt
4. 프로젝트와 앱
__init__.py : Python에게 이 디렉토리를 하나의 Python 패키지로 다루도록 지시
> 별도로 추가 코드 작성하지 않음
settings.py : Django 프로젝트 설정을 관리
manage.py : Django 프로젝트와 다양한 방법으로 상호작용하는 커맨드라인 유틸리티
1.어플리케이션(앱) 생성 | ◈ 일반적으로 애플리케이션 이름은 '복수형'으로 작성하는 것을 권장
$ python manage.py startapp articles
앱 (APP) == 하나의 큰 기능 단위
정해진 규칙은 없으며 개발자가 판단해서 앱 생성 - 단일 앱으로 개발해도 괜찮
애플리케이션 구조
admin.py : 관리자용 페이지를 설정 하는
models.py : 애플리케이션에서 사용하는 Model을 정의하는 곳
> MTV 패턴의 M에 해당
views.py : view 함수들이 정의 되는 곳
> MTV 패턴의 V에 해당
2. 애플리케이션 등록
앱을 사용하기 위해서는
반드시 INSTALLED_APPS 리스트에 반드시 추가
( ' , ' 중요!! - 오류 많이 발생)
| Project & Application
- Project
- "collection of apps"
- 프로젝트는 앱의 집합
- 프로젝트에는 여러 앱이 포함될 수 있음
- 앱은 여러 프로젝트에 있을 수 있음
- Application
- 앱은 실제 요청을 처리하고 페이지를 보여주는 등의 역할을 담당
- 앱은 하나의 역할 및 기능 단위로 작성하는 것을 권장함
5. 요청과 응답
| Django의 세가지 구조
| URLs
URL ▶ VIEW ▶ TEMPLATE 데이터 흐름 이해하기
| render()
$ render(request, template_name, context)
주어진 템플릿을 주어진 컨텍스트 데이터와 결합하고 렌더링 된 텍스트와 함께 응답 객체를 반환하는 함수
1. request : 응답을생성하는 데 사용되는 요청 객체
2. template_name : 템플릿의 전체 이름 또는 템플릿 이름의 경로
3. context : 템플릿에서 사용할 데이터 (딕셔너리 타입으로 작성)
'FrontEnd > Django' 카테고리의 다른 글
02. Django URLs (0) | 2023.03.22 |
---|---|
01. MTV 구조 (0) | 2023.03.22 |