Django 10

Docker_기본

Docker 기본 플로우dockerfile 작성 → image 빌드 → container 실행 dockerfile 컨테이너 이미지를 생성하기 위한 명령어 모음이 담긴 텍스트 파일 (명령이 들어있는 설계도)dockerfile 작성 - 실제로 실행해야할 명령어들을 순서대로 작성베이스 이미지 선택 이미지의 기반이 될 OS 또는 런타임 선택 애플리케이션 설치 및 설정 필요한 코드와 파일을 이미지에 복사 파일 복사 애플리케이션 실행에 필요한 라이브러리나 도구 설치 작업 디렉토리 설정 컨테이너에서 열어야 할 포트 정의 애플리케이션 실행 명령어 컨테이너 실행 시 기본으로 실행될 명령 설정 더보기# 1. 베이스 이미지FROM python:3.10-slim# 2. 작업 디렉토리 설정WORKDIR /app # 컨테..

카테고리 없음 2025.01.21

Django_set_password 함수

set_password사용자의 비밀번호를 안전하게 저장할 수 있도록 해시(hashing) 처리를 해주는 메서드평문으로 입력된 비밀번호를 해시화하여(암호문으로 변경하여) 데이터베이스에 저장직접 평문 비밀번호를 저장하지 않음해시 알고리즘을 사용해 암호문으로 변경되기 때문에 보완성이 보장됨UserCreationForm은 내부적으로 set_password를 사용하여 비밀번호를 해시화함from django.contrib.auth.models import User# 사용자 생성user = User(username='example_user')# 비밀번호 해시화user.set_password('password12341234') # 데이터베이스에 저장user.save()비밀번호 검증검증 성공 : "데이터 베이스의 암호..

카테고리 없음 2025.01.20

Django_ 해시, 쿠키, 세션

웹 보안의 기본 원칙: 쿠키, 세션, 해시, (JWT)웹 애플리케이션 개발에서 보안은 매우 중요한 부분입니다.쿠키, 세션, 해시, JWT는 웹 보안을 위해 함께 사용되는 핵심 기술입니다.  서로 보완하며 웹 보안을 더욱 강화합니다.사용자의 정보를 안전하게 관리하고 인증된 사용자에게만 서비스를 제공해야 신뢰성을 얻을 수 있습니다. "cㅜ키는 cㄹ라이언트, sㅔ션은 sㅓ버에 저장"클라이언트가 서버(웹)에 요청을 보냄 -> 서버는 세션 ID를 만듦 -> 세션 ID와 함께 쿠키한테 전달쿠키가 다음에 요청을 할 때는 세션 ID를 함께 서버에 보내줌 쿠키(cookie): 웹 애플리케이션의 작은 기억 장치 세션 ID를 저장하여 세션을 유지하는 데 사용 특정 사용자 구별사용자 상태 저장 (로그인 상태나 장바구니 정보)..

카테고리 없음 2025.01.17

Django_commit=False

commit=False는 데이터베이스에 바로 저장하는 것이 아닌 수정이 필요한 경우 사용합니다. commit=False 없이 저장하는 경우form.save()​폼 데이터를 즉시 데이터베이스에 저장폼 데이터를 수정하지 않고 그대로 저장할 때 사용 가능 commit=False를 사용하는 경우post = form.save(commit=False)post.author = request.user # 예: 작성자 정보 추가post.save()form.save(commit=False)는 폼 데이터를 데이터베이스에 저장하지 않고 해당 모델 객체만 반환반환된 객체를 수정한 후 명시적으로 .save()를 호출하여 데이터베이스에 저장저장 전에 추가로 값을 설정하거나 다른 작업을 수행해야 할 때 필요예) author, cr..

카테고리 없음 2025.01.15

Django_ HTML 태그

HTML 태그Django 템플릿에서 데이터를 표현할 때 HTML 태그를 사용합니다. 줄바꿈 적용 태그 - 단순 줄바꿈(글 사이 공백 없음) - 문단 표현(글 사이 일정 크기의 공백 발생) - (태그 내에 있는 그대로 보여줌)DjangoHTML 태그태그 내 내용 그대로 적용 제목 ~ : 헤딩{{ blog.title }}Posts{% for post in posts %} {{ post.title }} {{ post.content }}{% endfor %} 단락: 문단 (paragraph){% for post in posts %} {{ post.content }}{% endfor %} : 구역 (division) This is a block of content. {% for pos..

카테고리 없음 2025.01.14

Django_클래스 추상화

클래스 추상화여러 모델, 뷰 등에서 공통적으로 사용하는 코드를 부모 클래스로 분리해 재사용코드 중복 제거: 동일한 필드나 메서드를 여러 클래스에 반복해서 쓰지 않아도 됨쉬운 유지보수: 공통으로 관리하므로 기능 추가나 확장, 수정하기 쉬움추상화된 클래스는 데이터베이스에 테이블 생성이 안됨 Meta 클래스의 `abstract = True`로 지정하면 추상 클래스로 설정되어 테이블로 생성되지 않음자식 클래스만 테이블 생성됨주로 모델 클래스에 적용뷰에서도 공통 로직(템플릿 등)을 모아 부모 클래스로 작성한 후 상속받아 사용할 수 있음모델 파일 사용 예시) blog/models.py기존 Post, Tag 클래스는 model.Model을 상속받기 때문에 중복 코드들을 한 클래스(TimestampedModel)에 넣..

카테고리 없음 2025.01.13

Django_Model Relationship

RDBMS (Relational Database Management System)관계형 모델에 기반한 데이터베이스 관리 시스템관계형 데이터베이스1:1, 1:N, N:M 관계데이터 간의 관계를 잘 나타내기 위함상황에 적절하게 관계 필드 선택하기 (데이터베이스가 쓸데없는 데이터로 채워질 수 있으며, 혼돈이 일어날 수 있음)기본 키(primary key), 외래 키(foreign key)로 데이터를 관리MySQL, PostgreSQL, Oracle Database O2O(One to One): 1:1 관계하나의 테이블의 각 행이 다른 테이블의 하나의 행과 연결관계 필드: OneToOneField예) 작성자와 아이디 O2M(One to Many): 1:N 관계하나의 테이블의 한 행이 다른 테이블의 여러 행과 연..

카테고리 없음 2025.01.09

Foreign Key

외래키(Foreign Key): 테이블과 테이블을 연결할 때 사용되는 키테이블의 특정 필드가 다른 테이블의 행을 참조Comment 테이블: Article 테이블에 외래키로 연결됨on_delete: 개체 삭제 시 수행할 동작 설정 옵션CASCADE: 연결되어 있는 Article이 삭제될 때 Comment도 삭제from django.db import modelsclass Article(models.Model): title = models.CharField(max_length=50) content = models.TextField() create_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(a..

카테고리 없음 2025.01.08

Django_앱, 마이그레이션, MTV

앱 생성 및 등록 앱 등록: python manage.py startapp 앱이름앱은 프로젝트에서 독립적인 기능을 의미#blog 앱 생성python manage.py startapp blog 앱 등록: myproject/settings.py의 INSTALLED_APPS에 앱 이름 추가하기INSTALLED_APPS = [ # 기존 앱들 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', # 새로 추가한 앱 'blog'..

카테고리 없음 2025.01.07

Django와 FastAPI

API(Application Programing Interface) 서비스의 요청과 응답을 처리하는 기능 의미 DjangoBattery Included 전략을 사용해 프레임워크에서 기본적으로 제공되는 기능이 많음초기 프로젝트 세팅에 필요한 작업을 줄일 수 있지만 불필요한 기능까지도 포함될 수 있음DRF(Django REST Framework)와 함께 사용MVC 패턴 쉽게 구현 가능내장된 시리얼라이저를 활용해 데이터 벨리데이션과 같은 기능을 빠르게 구현 가능어드민과 같이 기본적으로 제공되는 기능을 활용해 빠르게 프로토타이핑하는 프로젝트에 적합 데이터베이스를 백엔드로 사용하는 웹사이트에 유용 강한 결합 때문에 다른 프레임워크나 디자인 패턴을 적용하기 제한적임 FastAPI경량 프레임워크웹서버 동작에 필요한 ..

카테고리 없음 2024.12.30