분류 전체보기(145)
-
Django 사용자 로그인및 권한 부여
소개: 장고(Django)는 파이썬 기반의 웹 프레임워크로, 강력한 인증과 권한 관리 기능을 제공합니다. 이 블로그 포스트에서는 장고를 사용하여 사용자 로그인과 권한 부여를 어떻게 구현하는지에 대해 자세히 알아보겠습니다. 1. 사용자 모델 정의: 장고의 기본 사용자 모델은 username, email, password 등을 포함합니다. 그러나 프로젝트의 요구에 따라 커스텀 사용자 모델을 정의할 수 있습니다. models.py 파일에서 다음과 같이 커스텀 사용자 모델을 정의할 수 있습니다. from django.contrib.auth.models import AbstractUser class CustomUser(AbstractUser): # 추가 필드 및 메서드 정의 pass 2. 사용자 인증 및 로그인:..
2023.12.09 -
Django REST 프레임워크 소개 및 활용 방법
Django REST 프레임워크 소개 및 활용 방법 1. Django REST 프레임워크 소개 Django REST 프레임워크는 Django 기반의 웹 API를 빠르게 개발할 수 있도록 도와주는 강력한 도구이다. RESTful API 디자인 원칙을 따르며, 시리얼라이저, 뷰, URL 라우팅 등을 제공하여 효율적인 API 개발이 가능하다. 2. RESTful API의 기본 구성 요소 리소스(Resource): 데이터 또는 서비스에 대한 표현, URI로 식별된다. HTTP 메서드: 리소스에 대한 행위를 정의하는 메서드 (GET, POST, PUT, DELETE 등). 표현(Representation): 리소스의 상태를 나타내는 데이터 형식 (JSON, XML 등). 3. Django REST 프로젝트 설정 ..
2023.12.08 -
장고 앱의 효율적인 구조와 모듈화
장고 앱의 효율적인 구조와 모듈화 1. 앱의 역할과 책임 정의하기 각 앱은 특정 기능 또는 관련된 기능 집합을 담당해야 한다. 각 앱은 명확한 역할과 책임을 가지며, 일관된 목적을 수행해야 한다. 2. 모델의 모듈화 앱 내의 모델을 작은 단위로 나누어 모듈화한다. models.py 파일이 너무 커지면 관련된 모델을 별도의 모듈로 분리하여 가독성을 높인다. myapp/ |-- models/ | |-- __init__.py | |-- user_models.py | |-- post_models.py | |-- comment_models.py 3. 뷰의 함수 분리 뷰 함수를 가능한 작은 단위로 분리하고, 관련된 기능을 하는 뷰들끼리 묶는다. 관련성이 높은 뷰를 같은 파일에 두거나, 필요하면 별도의 모듈로 분리한..
2023.12.07 -
장고 보안: 웹 애플리케이션 보호 전략
장고 보안: 웹 애플리케이션 보호 전략 1. CSRF(Cross-Site Request Forgery) 공격 방어하기 Django는 기본적으로 모든 POST 요청에 대해 CSRF 토큰을 요구한다. {% csrf_token %}을 템플릿에 추가하여 폼에서도 적용할 수 있다. {% csrf_token %} Submit 2. XSS(Cross-Site Scripting) 방어하기 Django 템플릿 시스템은 기본적으로 문자열을 이스케이프하여 XSS 공격을 방어한다. |safe 필터를 사용하여 특정 변수를 이스케이프하지 않도록 지정할 수 있다. {{ user_input|safe }} 3. SQL Injection 방어하기 Django ORM은 파라미터화된 쿼리를 사용하여 SQL Injection을 방어한다. 사..
2023.12.06 -
Django ORM의 강력한 기능과 최적화 팁
Django ORM의 강력한 기능과 최적화 팁 1. ORM 소개 및 기본 개념 이해하기 Django ORM은 데이터베이스와의 상호 작용을 추상화하는 도구로, SQL 쿼리를 직접 작성하지 않고도 데이터를 다룰 수 있다. 모델 클래스를 정의하고 이를 통해 데이터베이스 테이블을 생성하며, 쿼리셋을 사용하여 데이터를 조작한다. 2. QuerySet의 지연 평가 이해하기 QuerySet은 지연 평가를 지원하며, 필요한 시점까지 데이터베이스에 쿼리를 전달하지 않는다. 필터링, 정렬, 슬라이싱 등의 작업을 순서대로 적용하고 마지막에 데이터를 가져온다. # 예시: 필터링 후 정렬 articles = Article.objects.filter(category='Tech').order_by('-pub_..
2023.12.05 -
Django 폼: 데이터 입력 및 유효성 검사
Django 폼: 데이터 입력 및 유효성 검사 1. 폼의 역할과 중요성 이해하기 Django 폼은 사용자로부터 데이터를 입력받기 위해 사용된다. HTML 폼 엘리먼트를 렌더링하고, 데이터의 유효성을 검사하며, 처리된 데이터를 서버로 전송한다. 2. 모델 폼과 폼 클래스 정의하기 Django에서는 모델 폼을 사용하여 데이터 모델에 기반한 폼을 쉽게 생성할 수 있다. 일반 폼도 직접 클래스를 정의하여 사용할 수 있다. # forms.py from django import forms from .models import Article class ArticleForm(forms.ModelForm): class Meta: model = Article fields = ['title', 'cont..
2023.12.04