본문 바로가기

분류 전체보기144

EC2, Django 연동 1. EC2 인스턴스는 키고 끌 때마다 IP 주소가 변경되기 때문에, 고정 IP를 위해서 elastic IP주소를 할당 탄력적 IP 주소 할당 2. SSH접속 Bitvise SSH Client를 사용, 키페어 import, 할당받은 IP주소와 22번 포트, username ubuntu EC2 환경구성 sudo apt-get update sudo apt-get upgrade sudo apt-get install python3-pip sudo pip install django virtuallenv를 사용하기 위해 EC2에서 virtualenv를 구성 pip install virtualenv virtualenv -p python3 venv_for_django source venv_for_django/binac.. 2024. 4. 7.
Django, 사용자가 로그인 했는지 확인하는 decorator 0. 인증과 인가 인증: 사용자의 신원을 증명하는 것 인가: 인증과 달리 액세스 권한을 확인하는 프로세스 Django에서 권한 확인을 도와주는 데코레이터에 대해서 알아보자. 1. view.py 1) 적용된 데코레이터 @login_required(login_url='accounts:login') 을 작성해주면된다. ..... ..... from django.contrib.auth.decorators import login_required @login_required(login_url='accounts:login') def answer_create(request, question_id): """ pybo 답변 등록 """ question = get_object_or_404(Question, pk=questi.. 2024. 4. 7.
Django, 탬플릿 태그를 활용하여 DB에 등록된 데이터 출력 및 페이징네이션 0. 개요 DB에 데이터를 저장하는 부분은 생략합니다. models.py from django.db import models from django.contrib.auth.models import User # Create your models here. class Question(models.Model): author = models.ForeignKey(User, on_delete=models.CASCADE) subject = models.CharField(max_length = 200) content = models.TextField() create_date = models.DateTimeField() def __str__(self): return f'{self.subject}' 1. view.py fr.. 2024. 4. 7.
Django, forms를 활용하여 사용자로부터 데이터 수집하기ModelForm 0. Django의 forms 시스템 사용자로부터 데이터를 수집하고 처리하는 간편하고 강력한 방법 제공 폼은 사용자가 웹 양식을 통해 데이터를 입력하고, 그 데이터를 서버에 전송 1. Forms의 주요 기능 입력 렌더링: 폼 필드를 HTML 양식 요소로 변환. 데이터 검증: 사용자가 제출한 데이터를 검증하고, 유요하지 않은 입력에 대한 오류 메시지를 생성 데이터 정리: 입력한 데이터를 Python데이터 타입으로 변환하고, 추가적인 처리를 수행 보안:CSRF 공격으로부터 보호하기 위한 메커니즘을 제공 2. Form의 활용 데이터 검증: 사용자가 제출한 데이터가 폼 필드에 정의된 조건을 충족하는지 확인 에러 메시지 처리: 유효하지 않은 데이터에 대해 사용자에게 피드백을 제공 데이터 저저아: ModelForm.. 2024. 4. 7.
Django, 함수 기반 뷰(FBV), 클래스 기반 뷰 호출(CBV)의 차이 0. 개요 Django에서 뷰(View)는 웹 요청을 받고 응답을 반환하는 기능을 담당하는데 뷰는 크게 두 가지 방식으로 구현 함수 기만 뷰(Function_Based Views,FBV) 클래스 기반 뷰(Class-Based Views, CBV) 둘의 차이를 알아보자 1. FBV 1) FBV란? 간단하게 하나의 함수로 요청을 처리하는 방식 2) 장점 간결성: 작은 애플리케이션 또는 단순한 긴으을 구현할 때 코드가 간결 직관성: 함수의 시작부터 끝까지 코드의 흐름을 쉽게 파악 3) 예시 from django.shortcuts import render def my_view(request): return render(request, 'my_template.html', {'additional_data': 'Th.. 2024. 4. 7.
Django에서 URLConf를 사용하여 Projcet와 App의 URL을 연결 0. 개요 Django에서 프로젝트를 생성하고 app을 생성하여 개발을 진행한다. Project: 하나 이상의 App을 포함하는 완전한 웹 애플리케이션 App: Django프로젝트의 구성 요소로, 특정 기능 또는 기능 집합 구현 이러한 App과 Project의 Url을 URLConf를 사용하여 연결해보자 1. 예시 1) Project의 urls.py from django.contrib import admin from django.urls import include, path urlpatterns = [ path('admin/', admin.site.urls), path('blog/', include('blog.urls')), # 'blog' App의 URL 포함 ] 2) 'blog' App의 urls.p.. 2024. 4. 7.
Django, model.py를 구현하고 DB에 변경사항 적용하기 0. Django에서 모델이란? Django의 모델은 데이터베이스의 테이블을 Python 클래스로 표현한 것. 모델을 통해 데이터베이스에 저장할 데이터의 구조를 정의하고 Django의 ORG(Object-Relational Mapping)을 사용해 데이터베이스와 상호작용 1. Django 모델의 특징 ORM: Django는 강력한 ORM을 제공, SQL 쿼리를 작성하지 않고 데이터 베이스와 상호작용 모델 필드: 다양한 종류의 필드 타입을 제공 관계 정의: ForeignKey, ManyToManyField, 등을 통해 테이블 간 관계 정의 관리자 인터페이스: Django의 관리자 인터페이스를 통해 모델 데이트를 쉽게관리 검증: 모델 필드에 정의된 조건에 따라 데이터의 유요성 검증이 자동으로 수행 마이그레이.. 2024. 4. 7.
Django, Django 프로젝트의 환경 및 구성 설정을 담고 있는 중요한 파일 settings.py 0. 개요 Django 프로젝트를 시작하면 생성된 파일 중 settings.py를 볼 수 있다. 제목에 설명한 것과 같이 settings.py는 Django 프로젝트의 환경 및 구성 설정을 담고 있는 중요한 파일이다. setting.py의 주요 설정 요소에 대해 알아보자 1. 주요 설정 요소 1) DEBUG 개발 중에는 True로 설정하여 디버깅 정보를 표시 프로덕션 환경에서는 보안을 위해 Flase로 설정 2) INSTALLED_APPS 프로젝트에서 사용하는 Django 앱을 나열 기본 앱과 사용자가 만든 앱 또는 서드 파티 챕을 여기에 추가 3) MIDDELWARE 요청과 응답 사이에서 동작하는 미들웨어를 정의 보안, 세션 관리, CORS등 다양한 기능을 위한 미들웨어를 설정 4) DATABASES .. 2024. 4. 7.
토큰 기반 인증 시스템 이해하기: 발급, 관리 및 JWT 현대 웹 서비스와 애플리케이션에서 사용자 인증은 필수적인 부분입니다. 토큰 기반 인증 시스템은 이를 위한 효과적인 해결책 중 하나로 자리 잡았습니다. 이 블로그 포스트에서는 토큰이 발급되고 관리되는 방법, 그리고 access 토큰과 refresh 토큰의 차이점에 대해 살펴보겠습니다. 또한, access 토큰을 확인하는 JWTAuthentication에 대해서도 알아보겠습니다. 1. 토큰이란 무엇인가? 토큰은 인증된 사용자의 세션 상태를 저장하지 않고 서버가 클라이언트에게 임시적으로 부여하는 문자열입니다. 이는 사용자가 로그인할 때 서버로부터 발급받으며, 이후의 요청에서 이 토큰을 사용하여 자신을 인증합니다. 토큰 기반 인증 시스템에서는 이 토큰이 사용자의 로그인 상태를 대신하여, 서버와 클라이언트 간의 .. 2024. 4. 7.