Skip to content

프로젝트라이온 백엔드 개발자 취업아카데미 with Django

Notifications You must be signed in to change notification settings

jinyoungpark00/project-lion-backend-django

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

[The Origin] 백엔드 개발자 취업 아카데미 with Django

프로젝트 라이언 & 이동원


공식문서

목차

1. 개발환경 구성

2. 터미널 명령어

3. 장고

4. 장고 모델 Models

5. 장고 어드민 Admin

6. 장고 템플릿 Tempaltes

1. 개발환경 구성

Python

Python 설치

VSCode

VSCode 설치

VSCode 설정

2. 터미널 명령어

디렉토리 관련

#현재 디렉토리 파일, 디렉토리 확인  
##윈도우
dir

##맥
ls -al

#디렉토리 이동
##윈도우, 맥
cd [디렉토리명]
## 상위 디렉토리 이동
cd ..

그 밖에

#터미널 텍스트 삭제
##윈도우
cls

##맥
clear

파이썬 관련

파이썬

윈도우는 python, 맥은 python3를 사용합니다.
맥은 기본적으로 파이썬2가 설치되어있어 python3를 꼭 붙여주셔야 합니다.

##윈도우
python
pip

##맥
python3
pip3

파이썬 패키지 관련

#패키지 확인
##윈도우
pip list

##맥
pip3 list

#패키지 설치
##윈도우
pip install [패키지명]

##맥
pip3 install [패키지명]

#패키지 제거
##윈도우
pip uninstall [패키지명]

##맥
pip3 uninstall [패키지명]


#패키지 업그레이드
##윈도우
pip install --upgrade pip

##맥
pip3 install --upgrade pip

가상환경

  • 가상환경을 만들 때에는 장고 프로젝트 폴더를 생성하여 디렉토리를 이동한 후 생성해야 함(아래 명령어 입력)
  • 가상환경 명은 venv가 아니여도 상관없으나 venv 사용을 권장
#가상환경 생성
##윈도우
python -m venv venv

##맥
python3 -m venv venv

#가상환경 접속
##윈도우
.\venv\Scripts\activate

##맥
source venv/bin/activate

3. 장고

장고 설치

##윈도우
pip install django

##맥
pip3 install django

장고 생성

  • 장고 프로젝트 생성 시 프로젝트 명은 제한은 없으나 협업, 유지보수를 위해 config로 하는 것을 권장
  • django-admin startproject [장고 프로젝트명] [위치|생략 가능]
    • 위치를 생략할 경우 장고 프로젝트명으로 폴더가 생기면서 생성됨
  • 장고 프로젝트, 장고 앱 생성 시 django-admin 명령어 사용
# 장고 생성
##윈도우, 맥
django-admin startproject confg .

장고 실행

  • 장고 개발서버 실행은
#장고 실행
##윈도우
python manage.py runserver

##맥
python3 manage.py runserver

4. 장고 모델 Models

DB 관련 명령어

#마이그레이션 생성
##윈도우
python manage.py makemigration

##맥
python3 manage.py makemigration

#마이그레이트
##윈도우
python manage.py migrate

##맥
python3 manage.py migrate

모델 필드

주요 필드 종류

필드명 내용 비고
CharField 작거나 큰 문자열을 위한 문자열 필드입니다.
TextField 큰 텍스트 필드입니다.
IntegerField 정수입니다. 범위 -2147483648
~ 2147483647
FloatField Python에서 float 인스턴스 표현되는 부동 소수점 숫자 입니다.
BooleanField 참/거짓 필드.
DateTimeField Python에서 datetime.datetime 인스턴스 로 표시되는 날짜 및 시간 입니다.
FileField 파일 업로드 필드입니다.
ForeignKey 다대일 관계입니다.
ManyToManyField 다대다 관계.

필드 옵션

옵션명 내용 비고
null 데이터베이스에서와 True같이 빈 값을 저장 합니다.
blank True필드를 공백으로 사용할 수 있습니다.
choices 이 필드의 선택 항목으로 사용할 정확히 두 항목(예: ) 의 반복 가능 항목으로 구성된 시퀀스 입니다.
default 필드의 기본값입니다.
editable False필드가 관리자 또는 기타 항목에 표시되지 않습니다.
help_text 양식 위젯과 함께 표시할 추가 "도움말" 텍스트입니다.
unique True이 필드는 테이블 전체에서 고유해야 합니다.
validators 이 필드에 대해 실행할 유효성 검사기 목록입니다.

QuerySet API

주요 함수

새로운 QuerySet 반환 메소드

함수명 내용 비고
filter() QuerySet주어진 조회 매개변수와 일치 하는 새 포함 개체를 반환합니다 .
exclude() 주어진 조회 매개변수와 일치 하지 않는 새 QuerySet포함 개체를 반환합니다.
annotate() uerySet제공된 쿼리 표현식 목록으로 의 각 개체에 주석을 답니다 .
order_by() 기본적으로 a QuerySet에 의해 반환된 결과 ordering는 모델의 Meta. 메서드 QuerySet를 사용하여 이를 기반으로 재정의할 수 있습니다 .
select_related() QuerySet쿼리를 실행할 때 추가 관련 개체 데이터를 선택하여 외래 키 관계를 "따를" 것을 반환 합니다.
prefetch_related() 지정된 QuerySet각 조회에 대한 관련 개체를 단일 일괄 처리에서 자동으로 검색하는 반환합니다.

새로운 QuerySet 반환 메소드

함수명 내용 비고
get() 필드 조회 에 설명된 형식이어야 하는 지정된 조회 매개변수와 일치하는 객체를 반환 합니다 .
create() 한 번에 개체를 만들고 모두 저장할 수 있는 편리한 방법입니다.
bulk_create() 이 메서드는 제공된 객체 목록을 효율적인 방식으로 데이터베이스에 삽입하고(객체가 얼마나 많은지 상관없이 일반적으로 1개의 쿼리만) 생성된 객체를 제공된 것과 동일한 순서로 목록으로 반환합니다.
count() 일치하는 데이터베이스의 개체 수를 나타내는 정수를 반환합니다.
first() 쿼리 세트와 일치하는 첫 번째 개체를 반환하거나 None일치하는 개체가 없는 경우 반환합니다.
aggregate() 집계 값(평균, 합계 등)의 사전을 반환합니다.
update() 지정된 필드에 대해 SQL 업데이트 쿼리를 수행하고 일치하는 행 수를 반환합니다.
delete() 모든 행에 대해 SQL 삭제 쿼리를 수행하고 삭제 QuerySet된 개체 수와 개체 유형당 삭제 수가 포함된 사전을 반환합니다.

5. 장고 어드민 Admin

ModelAdmin

ModelAdmin 주요 옵션

옵션명 내용 비고
list_display 관리자의 변경 목록 페이지에 표시되는 필드를 제어하도록 설정
list_editable 변경 목록 페이지에서 편집을 허용할 모델의 필드 이름 목록으로 설정
list_filter 변경 목록 페이지 오른쪽 사이드바에서 필터를 활성화하도록 설정
search_fields 변경 목록 페이지에서 검색 상자를 활성화하도록 설정
search_help_text 검색 상자 아래에 표시될 검색 상자에 대한 설명 텍스트를 지정하도록 설정 Django 4.0의 새로운 기능
readonly_fields 데이터를 있는 그대로 표시하고 편집 불가
inlines 관리 인터페이스에는 상위 모델과 동일한 페이지에서 모델을 편집할 수 있는 기능 InlineModelAdmin

About

프로젝트라이온 백엔드 개발자 취업아카데미 with Django

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 80.9%
  • HTML 14.7%
  • CSS 4.4%