∟ Framework/⊢ Django 25

Django - Bootstrap, FontAwesome 활용

Bootstrap반응형 웹 디자인을 쉽게 적용할 수 있도록 돕는 CSS 프레임워크→ 기본적인 스타일이 미리 정의되어 있어 빠르게 웹사이트의 디자인 개선 가능 getbootstrap BootstrapPowerful, extensible, and feature-packed frontend toolkit. Build and customize with Sass, utilize prebuilt grid system and components, and bring projects to life with powerful JavaScript plugins.getbootstrap.com CSS 적용base.html의 태그 안에 아래의 Bootstrap CSS 링크 추가  JS 적용base.html의 태그 마지막 줄에 ..

Django - Model Relationship (M:N)

ManyToMany Relationship in Django  좋아요 (Like) 기능 구현User가 특정 Article에 좋아요(Like)를 누르는 기능→ User가 어떤 Article에 좋아요를 눌렀는지 저장 articles/models.py 1차 구현 (1:N 관계)class Article(models.Model): title = models.CharField(max_length=50) content = models.TextField() author = models.ForeignKey( settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="articles" ) like_user = models.F..

Django - Custom User Model

Django에서는 기본적으로 제공하는 User 모델이 있지만, 대부분의 프로젝트에서는 사용자 모델을 확장하여 추가적인 기능을 구현 AUTH_USER_MODEL 설정을 변경하여 기본 User Model을 대체할 수 있으며, 프로젝트 초기부터 Custom User Model을 적용하는 것이 권장됨AUTH_USER_MODEL 설정은 프로젝트 최초 마이그레이션에서 함께 진행하기를 권장USER Model은 비지니스로직 깊숙이 관여됨 → 중간에 변경 시 많은 변경사항을 야기 Custom User Model 적용 User 모델 정의 accounts/models.py에서 Django의 기본 AbstractUser를 상속받아 Custom User Model을 정의from django.db import modelsfrom..

Django - 1:N 관계 (Many-to-One Relationships)

1:N 관계 (Many-to-One Relationships) 한 개의 객체가 여러 개의 다른 객체와 연결  Article(게시글) - Comment (댓글)하나의 Article은 여러 개의 Comment를 가질 수 있음하나의 Comment는 하나의 Article에 속함Author(작성자) - Article (게시글)하나의 Author는 여러 개의 Article을 가질 수 있음하나의 Article은 하나의 Author만 가질 수 있음  *ForeignKey (외래키) 다른 모델을 참조하는 필드→ 관계형 데이터베이스에서 한 테이블의 필드 중 다른 테이블의 행을 유일하게 식별 가능한 키→ 테이블에 설정되는 Foreign Key가 반드시 다른 테이블의 Primary Key일 필요는 없으나 유일하게 식별이 가능..

Django - Admin Site 활용

Django Admin Site Django는 기본적으로 Admin Site(관리자 페이지) 기능을 제공레코드 조회레코드 생성레코드 수정레코드 삭제권한 설정검색 기능필터링정렬커스텀 UI 적용→ 서비스의 효율적 관리 가능  Django Admin Site 활성화 Django 프로젝트를 생성하면 기본적으로 admin 페이지가 포함돼있음 urls.py*admin 계정 생성python manage.py createsuperuser 최소 is_staff 권한 필요  admin에서 관리할 모델 등록  기본적으로 Django Admin Site에는 User 모델 등 기본적인 데이터만 제공추가로 앱에서 사용하는 모델을 관리하기 위해 관리자 페이지에서 사용할 모델 등록 필요각 앱의 admin.py에서 설정 가능  기본 ..

Django - Static & Media

Django 정적 파일 & 미디어 파일 관리 Static Files (정적 파일) 서비스 로직의 영향을 받지 않고 그대로 제공되는 파일이미지 파일 (로고, 광고 이미지 등)CSS 파일( 스타일 적용)JavaScript 파일 (클라이언트 측 스크립트)  Django에서 정적 파일 관리Django는 정적 파일을 쉽게 다룰 수 있도록 기본적인 기능을 제공STATIC_URL 정적 파일을 제공할 때 사용하는 URL 경로개발 단계에서는 app/static 폴더 또는 STATICFILES_DIRS에 지정된 경로를 참조함*이 경로는 실제 디렉토리가 아닌 URL 경로  STATIC_ROOT 배포를 위해 모든 정적 파일을 모으는 디렉토리의 절대 경로 DEBUG=False인 배포 환경에서 사용됨python manage.py..

Django - 회원기능 구현하기

Django 회원가입, 회원탈퇴, 정보수정, 비밀번호 변경 구현   회원가입 (Signup)Django에서는 기본적으로 'auth.User'모델을 제공'UserCreationForm'을 사용하여 회원가입 기능을 구현할 수 있음 UserCreationFormusername과 password로 새로운 user를 생성하는 ModelFormusername, password1, password2를 가짐django.contrib.auth.forms django/django/contrib/auth/forms.py at 944745afe2ec45aed30cef799c250107f1364ca7 · django/djangoThe Web framework for perfectionists with deadlines. - d..

Django - Auth

Auth 인증(Auth)은 웹 개발에서 필수 요소Django 역시 이를 지원함  'django.contrib.auth' : 인증 관련 핵심 로직, 모델 제공'django.contrib.contenttypes' : 사용자 모델과 권한을 연결 인증 (Authentication) : 사용자가 누구인지 확인하는 과정권한 (Authorization) : 사용자가 특정 작업을 수행할 수 있는지 확인하는 과정Auth == 인증(Authentication) + 권한(Authorization)쿠키(cookie), 세션(session) HTTP와 쿠키/세션의 필요성  HTTP의 특징비연결지향(Connectionsless)한 번 요청에 대한 응답 후 연결이 종료됨무상태(Stateless)이전 요청을 기억하지 못함→ 쿠키와 ..

Django - URL Namespace

URL Namespace  URL 네임스페이스 적용 Django에서는 동일한 URL 네임을 사용하는 경우 네임스페이스를 지정하여 앱별로 URL을 고유하게 관리할 수 있도록 지원1. 각 'urls.py'에 'app_name'을 정의2. 템플릿 및 코드에서 'namespace:url_name' 형식으로 URL을 참조 'articles'와 'users'앱에 각각 'hello/'라는 동일한 URL 패턴이 있는경우  'articles/hello/'와 'users/hello'가 서로 다른 경로이므로 기본적으로 구별이 됨하지만 템플릿에서 URL을 참조할 때 문제가 발생  Index라는 template에서{% url 'hello' %} 혹은 views에서redirect('hello') 이렇게 작업할 시 Django는 ..

Django - Django Form과 ModelForm을 활용한 입력 폼 처리

유효성 검사와 Django Form 숫자만 입력해야하는 필드에 유저가 문자를 입력하는 경우가 발생하는 경우가 발생할 수 있음→이를 방지하기 위해 사용자 입력 데이터 유효성 검사→Django에서는 Form클래스를 제공하여 유효성 검사와 Form 구성을 간편하게 처리(Django의 Form을 사용하지 않고 이전에 직접 구현한 Form과 View 로직을 사용해도 무방함)  Django Form Class - Django Form 선언 Form을 View에 적용 Template에서 Form 렌더링form.as_p를 사용하면 각 필드가 태그로 감싸진 형태로 렌더링 됨 *Django의 렌더링 옵션https://docs.djangoproject.com/en/4.2/topics/forms/#form-rendering-..

728x90