∟ Framework 42

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-..

Django - MTV 패턴을 활용한 RUD(Read, Update, Delete) 구현

Django MTV 패턴으로 게시글 RUD 구현하기  RUDRead : 상세 페이지 조회Update : 글 수정 (수정 및 저장 처리 분리)Delete : 글 삭제 (POST 방식만 허용) 편의성 개선상세 페이지 링크 추가목록 및 작성 페이지 간 이동 링크 추가 글 작성 후 목록 페이지로 리다이렉트글 작성 후 URL 이동이 이루어지지 않으면 브라우저에서 POST 요청이 반복될 가능성이 있음이를 방지하기 위해 redirect를 사용하여 'articles' 목록 페이지로 이동하도록 수정  실제로 render처리만 해서 띄운 create 페이지에서 command+r 을 연타한 결과중복된 데이터가 여러개 생성된 것을 볼 수 있다.   *PRG(Post-Redirect-Get) 패턴POST 요청 후 다른 URL로..

Django - MTV패턴을 활용한 C(Create)와 R(Read) 구현

Django의 MTV(Model-Template-View) 패턴은CRUD(Create, Read, Update, Delete) 작업을 명확하게 구현할 수 있도록 구조화되어 있음   C(Create) : 사용자 입력 폼과 데이터 저장 로직을 작성, 새로운 데이터를 데이터베이스에 저장R(Read) : 저장된 데이터를 데이터베이스에서 조회, 템플릿에 렌더링하여 사용자에게 표시연계 : Create에서 저장된 데이터를 Read에서 즉시 확인할 수 있도록 설계    모델 설계 앱(articles)내의 models.py - 데이터 구조 정의    View 정의 앱(articles)내의 views.py  Read(articles) : views.py에서 Model에 접근해 data를 가져와 Template으로 전달Cr..

Django - ORM(Object-Relational Mapping)

ORM(Object-Relational Mapping)  객체지향 언어(예: Python)의 객체를 사용해 데이터베이스를 조작할 수 있게 해주는 도구  • 객체지향 언어는 데이터를 클래스와 객체로 다루고,   관계형 데이터베이스는 테이블과 행으로 데이터를 관리→ 두 시스템 간의 개념적 차이를 줄이는 것이 ORM의 역할 ORM을 사용하면 SQL문을 직접 작성하지 않고도 Python 코드만으로 데이터베이스를 조작할 수 있음   ORM의 주요 사례 • Python: Django ORM, SQLAlchemy, Tortoise ORM • Java: JPA, Hibernate • Node.js: Sequelize Django 프로젝트에서는 별도의 언급 없이 ORM을 기본으로 사용(Django가 기본적으로 ORM기능..

Django - Model

Django - Model 데이터베이스의 구조(layout)와 데이터를 조작하기 위한 필드 및 동작을 포함models.Model을 상속받아 사용하며, 보통 하나의 Model은 하나의 데이터베이스 테이블에 대응   • Database(데이터베이스): 잘 정리된 데이터의 집합 • Query(쿼리): 데이터베이스 조작을 위한 언어 • Schema(스키마): 데이터베이스의 구조와 데이터 간의 관계를 정의한 설계도 • Table(테이블): 데이터를 저장하는 조직화된 집합 (열: 속성/필드, 행: 데이터/레코드/튜플) • Primary Key(PK): 각 테이블의 각 데이터를 유일하게 식별하는 열 →데이터베이스를 Django의 Model을 사용해서 구조화하고 조작!    Django Model 생성하기 앱 내 mo..

728x90