Django 26

Django 실습(9) 동영상 CRUD 구현하기

CBV를 이용해서 모놀로그식 방식으로 동영상 CRUD와 로그인을 구현해보자. url링크는 다음과 같다. /tube # 목록 /tube/1 # 영상 재생과 /tube/create/ # 게시물 생성 /tube/update// # 게시물 업데이트 /tube/delete// # 게시물 삭제 /tube/tag// # 해당 태그를 가진 게시물 목록 /tube/?q='keyword' # 키워드 검색 목록 /accounts/signup/ # 가입 /accounts/login/ # 로그인 /accounts/logout/ # 로그아웃 /accounts/profile/ # 프로필 실습 tube, accounts 앱 추가, settings.py 수정 'DIRS': [BASE_DIR / 'templates'], LANGUAGE..

Django 2023.10.20

DRF 와 마이크로서비스 튜토리얼

DRF : Django REST Framework Django를 기반으로 REST API 서버를 만들기 위한 라이브러리 모놀리식 : 여태까지 해온 방식으로 템플릿 문법을 써서 사용자에게 html, css, js코드를 주는 방법. API 명세표가 따로 필요없음. Server에서 렌더링을 다 해줌 - 장점 : 규모가 있지 않은 서비스의 경우 빠른 개발 가능, 소규모 팀인 경우 선택하기 좋음 - 단점 : 규모가 커질 경우 BE, FE의 역할이 혼재된다. 마이크로서비스 : Django서버와 FE서버를 별도로 운영하는것. 앞으로 DRF를 사용해서 마이크로식으로 구현해 볼 것이다. - 장점 : 서버엔지니어와 프론트엔드개발자가 API 명세서로 소통할 수 있음 - 단점 : 소규모 프로젝트에서는 의사소통 비용이 올라감...

Django/DRF 2023.10.18

Django 실습(8) RDB(관계형 데이터베이스) 만들어보기

RDB : Relational DataBase. 테이블을 통해 데이터 집합을 표현하는 방식의 데이터베이스. - 계층형 데이터베이스 (1:N) - 망형 데이터베이스 (N:M) 실습 tutorialdjango 프로젝트를 만들고, startapp blog후, settings.py를 수정해준다. DB 모델 설계 blog / models.py 에 모델 구현 구현 후 makemigrations, migrate 하기 from django.db import models from django.contrib.auth.models import User # User 모델을 import class Post(models.Model): title = models.CharField(max_length=100) content = mo..

Django 2023.10.17

Django 템플릿 필터

앞으로 settings.py 에 다음과 같이 코드를 수정한다. LANGUAGE_CODE = 'ko-kr' TIME_ZONE = 'Asia/Seoul' 템플릿 필터 : 템플릿에서 데이터를 형식화하고 변환 가능 만약에 블로그 게시물들을 아래와 같이 posts로 템플릿에 보낸다면, def postlist(request): posts = Post.objects.all() return render(request, 'blog/postlist.html', {'posts':posts}) 템플릿 필터는 이렇게 쓸 수 있다. {% for i in posts %} {{i.id}} {{i.title}} 대문자 : {{i.content|upper}} 소문자 : {{i.content|lower}} 줄바꿈안함 : {{i.conte..

Django 2023.10.17

Django CBV - 제네릭 뷰 (Generic View)

제네릭 뷰 : Django에서 제공하는 CBV(Class-Based View)로, 자주 쓰는 View가 미리 만들어져있다. 상속받아서 사용 공식 문서 : https://docs.djangoproject.com/en/4.2/ref/class-based-views/ Django The web framework for perfectionists with deadlines. docs.djangoproject.com Base views 뷰 클래스를 생성하고, 다른 제네릭 뷰의 부모 클래스가 되는 기본 제네릭 뷰 - View : 최상위 제네릭 뷰, 기본 뷰, Django view를 만드는데 필요한 기능 제공 - TemplateView : 템플릿이 주어지면 렌더링을 해주는 뷰 - RedirectView : URL이 ..

Django 2023.10.16

Django 실습(7) 클래스 기반 뷰 (Class-Based Views) 이용하기

그 전까지는 함수 기반 뷰를 이용해서 views.py를 만들었지만, 이제는 클래스 기반 뷰를 통해서 좀 더 쉽게 만들어보자. generic 클래스에 대한 실습 이제는 각 프로젝트마다 venv를 만들지않고 하나의 가상환경을 계속해서 쓰자. pip freeze > requirements.txt 를 이용해서 버전관리를 할 수 있다. 설치할때는 pip install -r requirements.txt 사용 그리고 .gitignore파일을 만들고 venv를 입력해서 가상환경은 무시하도록 한다. startproject를 하고, startapp으로 blog를 만들어서 클래스 기반 뷰를 사용해보자. tutorialdjango / urls.py from django.contrib import admin from djan..

Django 2023.10.16

Django 실습(6) Login 기능 구현하기

Django에서는 startproject를 했을 때 자동으로 추가되는 django.contrib.auth 앱을 이용하면 간단하게 구현할 수 있다. 실습 Django 프로젝트를 만들고 accounts 앱 추가, settings.py에 app추가, urls.py에 "accounts/" url 추가 accounts / urls.py 추가 from django.urls import path from . import views app_name = "accounts" urlpatterns = [ path('signup/', views.signup, name='signup'), path('login/', views.login, name='login'), path('logout/', views.logout, name=..

Django 2023.10.13

Django 실습(5) Form과 ModelForm 사용한 블로그

지난번엔 html파일에서 태그를 하나씩 직접 달아서 post로 보내는 방식으로 게시물을 생성했지만, 이번에는 장고에서 제공하는 Form과 ModelForm을 이용해서 좀 더 간단하고 효율적으로 처리할 수 있다. 역할 : Form 클래스의 데이터를 읽어서 HTML 입력폼을 알아서 만들어주고 유효성 검증 및 값 반환이 쉽다. Form과 ModelForm의 차이 : Form은 직접 필드를 정의하고 위젯 설정이 필요하지만, ModelForm은 지정된 Model로 부터 필드 정보를 읽고 자동으로 필드를 설정한다. 실습 지난번에 한 실습에서 파일들을 좀 수정하면서 진행 blog / models.py 수정 from django.db import models class Post(models.Model): title =..

Django 2023.10.12

Django ORM을 이용해서 DB CRUD 해보기

공식문서 : https://docs.djangoproject.com/en/4.2/ref/models/querysets/#django.db.models.query.QuerySet Django The web framework for perfectionists with deadlines. docs.djangoproject.com Django ORM : 우리가 만든 모델 클래스와 DB에 생성된 테이블을 자동으로 연관지어 주는 기술. python 문법을 통해서 DB를 조작할 수 있다. 실습(4)에서 만들어둔 모델과 DB를 이용해서 ORM 사용해보기. python manage.py shell blog / models.py 에서 Post 클래스 import 하기 >>> from blog.models import Po..

Django 2023.10.11