web 68

Django 모델 생성하고 Many-To-Many 관계 형성하기

User 모델과 Post 모델이 존재한다고 할 때, 좋아요 기능을 구현해보자- 하나의 Post에 여러 User가 '좋아요'를 누를 수 있음- 한 User는 여러 개의 Post에 '좋아요'를 누를 수 있음 => 즉 User 모델과 Post 모델은 Many-to-Many로 연결되어있으며 Like가 그 중계테이블이다. Django에서 ManyToMany 관계를 만드는 세 가지 방법 1️⃣ 중계 테이블을 직접 만들고, 해당 테이블이 Foreign Key로 두 개의 모델을 가리키는 방법2️⃣ 연결해야하는 모델 중 하나에 ManyToManyField를 사용하여 Django가 자동으로 중계 테이블을 만들도록 하는 방법3️⃣  1+2 방법, 중계 테이블을 만들고 ManyToManyField에 직접 만든 중계 테이블을 ..

web/django 2024.05.14

Django 모델 생성하고 One-To-Many 관계 형성하기

Post 모델을 이미 생성한 상태라고 가정. django-admin startapp account새로운 app을 만들고요 INSTALLED_APPS = [ ... 'account', # 추가("account.apps.AccountConfig"도 가능)]프로젝트 serttings.py도 수정을 해야겠죠 사실 장고에서는 기본적으로 User 모델을 제공하지만 이 모델은 최소한의 기본적인 기능만을 제공따라서 기본 field 이외의 커스터마이징이 필요한 경우 이를 확장해서 사용from django.db import modelsfrom django.contrib.auth.models import User# Create your models here.class UserProfile(model..

web/django 2024.05.13

데이터베이스 핵심 개념들

기본키- 테이블에서 행의 식별자로 이용되는 열을 (key)또는 기본 키(primary key)라고 합니다- 테이블에서 한 행을 고유하게 식별할 수 있는 정보를 의미 외래키- onetomany, manytomany 등의 관계에서 다른 테이블을 가리키기 위해 가지고 있는 다른 테이블의 Primary key- foreign key는 하나의 테이블에서 고유하게 존재하는 개념이 아니라, 두 테이블의 관계에서 비롯된 개념 OneToOne테이블의 한 행과 다른 테이블의 한 행이 1:1로 대응되는 관계입니다.일반적으로는 아래와 같은 상황에 사용될 수 있습니다.한 테이블에 데이터를 몰아넣는 게 효율적이지 않을 때보안을 위해 일부 데이터를 따로 관리하고자 할 때onetoone 관계에서 두 테이블을 연결하기 위해서는 반드시..

web/django 2024.05.13

Django SWAGGER 이용해 API 명세 작성하기

pip install -U drf-yasg # 전역으로 설치pip freeze > requirements.txt # 버전정보 저장 설치하시죠 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'post.apps.PostConfig', # 'post' 라고만 적어도 됨 'drf_yash',] seminar/settings.py 에서 해당 앱을 등록해주고 from django.contrib imp..

web/django 2024.05.08

Django View 설계하기

HTTP Request MethodGET : 데이터 조회POST:  요청 데이터 처리, 주로 등록에 사용PUT : 데이터를 대체(덮어쓰기), 해당 데이터가 없으면 생성PATCH : 데이터 부분 변경 (PUT이 전체 변경, PATCH는 일부 변경)DELETE : 데이터 삭제HEAD : GET과 동일하지만 메시지 부분(body 부분)을 제외하고, 상태 줄과 헤더만 반환OPTIONS : 대상 리소스에 대한 통신 가능 옵션(메서드)을 설명(주로 CORS에서 사용)CONNECT : 대상 자원으로 식별되는 서버에 대한 터널을 설정TRACE : 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트를 수행C, U의 경우 data를 request Body에 넣어서 JSON 형태로 보내준다 cf) why JSON?가볍고 ..

web/django 2024.05.07

Django model 생성하고 설정하기

Django 앱 생성하기- 프로젝트를 기능 단위로 쪼갠 덩어리 (웹 애플리케이션의 구성 요수, 하나의 기능적 단위)django-admin startapp post 이렇게 post라는 앱을 생성하고 seminar/settings.py 파일을 수정해서 installed app 리스트에 추가함INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'post.apps.PostConfig', # 'post' 라고..

web/django 2024.05.07

Django 프로젝트의 구조 및 관련 개념 정리

Django 프로젝트 구조|-- manage.py|-- seminar/| |-- settings.py| |-- urls.py|-- account/ #account라는 앱(이번 시간엔 만들지 않음)| |-- models.py| |-- views.py| |-- urls.py|-- post/ #post라는 앱| |-- models.py| |-- views.py| |-- urls.py|-- .venv/|-- db.sqlite3 - 위 예시는 seminar 프로젝트 아래에 기능별로 account, post 앱이 존재하는 케이스- seminar 폴더에서는 전체 프로젝트의 기본 URL, 환경변수 등의 설정을 함- account, post 폴더에서는 앱의 구현이 담김, seminar/ 폴더..

web/django 2024.05.07

Django 프로젝트 세팅하기

STEP1. 독립적인 파이썬 실행 환경 (=가상환경) 구축- pip 패키지 매니저로 설치한 패키지는 전역으로 설치됨- 프로젝트가 여러개일 경우 문제가 생길 수 있음. (서로 다른 프로젝트가 호환이 안 되는 다른 버전의 패키지 사용 등등)- 각 프로젝트 별로 독립된 개발 환경을 제공하여 이런 문제 방지- venv, virtualenv, pipenv, conda 등의 모듈을 사용할 수 있음 파이썬에 내장된 venv를 이용해 가상환경을 만들어보자# 가상 환경 생성python -m venv .venv# Windows에서 터미널이 cmd라면.venv\Scripts\activate.bat# Windows에서 터미널이 git bash라면source .venv/Scripts/activate이렇게 (.venv)가 앞에 ..

web/django 2024.05.07