django 시작 방법
$pip install django
pip install 을 통해서 django를 최신 버전으로 설치를 하고
$django-admin startproject <프로젝트이름>
이 명령어는 새로운 django 프로젝트를 생성을 하게 해줍니다
이렇게 생긴 프로젝트는 밑에와 같은 구조를 가지게됩니다
프로젝트이름/
manage.py #Django 프로젝트를 관리하기 위한 명령행 유틸리티입니다
프로젝트이름/
__init__.py #해당 디렉토리를 파이썬 패키지로 인식하도록 합니다
settings.py #Django 프로젝트의 설정 파일입니다.
urls.py #Django 프로젝트의 URL 패턴을 정의하는 파일입니다
asgi.py #ASGI서버를 사용할때 사용합니다
wsgi.py #WSGI서버를 사용할떄 사용합니다
django 는 python manage.py 뒤에 붙는 명령어로 다양한 작업을 수행하게 되는데
이러한 명령어중 사용해본 것들만 사용법을 정리하면 아래와 같습니다
python manage.py startapp <애플리케이션이름> # 새로운 장고 애플리에키션 생성
python manage.py runserver # 로컬 개발 서버를 실행
python manage.py makemigrations #데이터 베이스 모델의 변경내용을 생성
python manage.py migrate #위에 생성된 마이그레이션 파일을 데이터베이스 스키마로 변경
python manage.py createsuperuseer #어드민 계정을 생성
python manage.py shell # shell을 엽니다
models.py
django 의 models.py는 데이터 베이스 모델을 정의하는 파일입니다
이 파일을 작성하기 위해서 고려 해야하는 사항들은
필드정의, 필드옵션,관계정의, 메타클래스 정의 등이있습니다
필드 정의란 데이터 베이스 모델에서 작성할 필드를 정리하는 것입니다.
title 은 CharField에 들어간다던가 하는 필드타입을 선언해주는것입니다
이중 많이 사용하게 되는 field타입들은 다음과 같습니다
models.AutoField #Integer 자료형으로, 자동으로 증가하는 ID 값을 저장합니다.
models.BigAutoField #BigInteger 자료형으로, 자동으로 증가하는 큰 ID 값을 저장합니다.
models.BinaryField #바이너리 데이터를 저장합니다.
models.BooleanField #True 또는 False 값을 저장합니다.
models.CharField #문자열을 저장합니다. max_length 파라미터를 사용하여 최대 길이를 설정할 수 있습니다.
models.DateField #날짜 값을 저장합니다.
models.DateTimeField #날짜와 시간 값을 저장합니다.
models.DecimalField #실수 값을 저장합니다.
models.DurationField #시간 간격 값을 저장합니다.
models.EmailField #이메일 주소를 저장합니다.
models.FileField #파일을 저장합니다.
models.FloatField #부동 소수점 값을 저장합니다.
models.ImageField #이미지 파일을 저장합니다.
models.IntegerField #정수 값을 저장합니다.
models.GenericIPAddressField #IP 주소 값을 저장합니다.
models.NullBooleanField #Null, True, False 값을 저장합니다.
models.PositiveIntegerField #양수 정수 값을 저장합니다.
models.PositiveSmallIntegerField #작은 양수 정수 값을 저장합니다.
models.SlugField #URL에 사용할 수 있는 값(알파벳, 숫자, 하이픈, 언더바)을 저장합니다.
models.SmallIntegerField #작은 정수 값을 저장합니다.
models.TextField #긴 문자열 값을 저장합니다.
models.TimeField #시간 값을 저장합니다.
models.URLField #URL 값을 저장합니다.
이와같이 필드를 정의하면서 필드 옵션 또한 정의를 해줘야하는데
필드 옵션이란 필드가 가질수있는 제약 조건 밑 동작을 정의하는것입니다
max_length를 통해 최대값의 제한을 준다던지 default로 기본값을 설정한다던지
하는게 필드옵션입니다
관계정의는 데이터 베이스 모델간의 관계를 정의하는 것을 의미합니다
django에서 ForeignKey, ManyToManyField, OneToOneField 등이 관계를 정의할때 사용합니다
마지막 으로 메타 클래스 정의는 class Meta를 통해서
데이터베이스의 이름 지정 인덱스 및 정렬 순서 같은 정보를 정의할수있습니다
urls.py
urls.py는 Django에서 URL 매핑을 담당하는 파일로, 사용자의 요청 URL과 매칭되는 view 함수를 호출하는 역할을 합니다
path('', views.index, name='index')
이와 같은 형식으로 작성이 되고 view. 뒤에있는 힘수 값을 view모델에서 가져오게된다
그리고 name인자는 해당 url 패턴의 이름을 지정하는건데 이것을 통해서 templates에서
참조가 가능하다
views.py
views.py는 웹 어플리케이션의 로직을 처리하는 파일입니다.
사용자가 요청한 URL에 따라 적절한 함수를 호출하여, 요청에 대한 응답을 반환합니다.
url 요청이 들어오면 매핑해서 함수를 호출하거나 모델을 호출하거나
템플릿을 렌더링하거나 응답에 대해 반환을 해주는 역할을 하고있습니다
'내일배움 캠프 > TIL' 카테고리의 다른 글
2023 04 07 완주하지 못한 선수 (0) | 2023.04.10 |
---|---|
이게....맞나...? (0) | 2023.04.07 |
2023 04 05 푸드 파이트 대회 (0) | 2023.04.06 |
2023 04 04 코딩 테스트 2차원으로 만들기 (0) | 2023.04.04 |
2023 04 03 코딩 테스트 연속된 수의 합 (0) | 2023.04.03 |