DJANGO
5 posts
오늘 알게 된 Django 미세정보 - Render, Redirect, @login_required

1. Render와 Redirect의 차이 Django view에서 return을 할 때 render로 하거나 redirect 로 합니다. 이 둘의 차이가 무엇일까요? render render는 위와 같이 templates에 있는 html을 보여줄 때 입니다. 이 때, url은 변경되지 않습니다. redirect redirect는 우리가 정해놓은 url로 리다이렉트 시킵니다. 이 때, url이 변경 됩니다. 2. @login_required Django view에서 함수 위에 를 적어주면 에게만 요청을 받아 view의 함수를 타게 할 수가 있습니다. 그렇다면 에게 요청을 받았을 때는 어떻게 응답을 해주면 좋을까요? 설정된 url로 리다이렉트 해줄 수가 있습니다. (로그인 페이지나 랜딩 페이지로 보내면 좋을 것 같습니다) 방법은 아래와 같습니다. @login_required 데코레이터 뒤에 로 로그인 되지 않은 유저를 리다이렉트 시킬 수 있습니다. 참고 https://docs.d…

February 18, 2022
TIL
DJANGO
좋아요 동시성 처리 - Django, F() expressions

[Django] 서로 다른 유저에게 좋아요 카운트를 동시에 받게 된다면? 버튼을 누를 때 마다 현재 DB에 들어 있는 게시글의 좋아요 수를 불러 온 후 1을 추가하고 다시 저장한다 라고 서비스로직을 만들었다고 해보자. 이 경우, 동시에 서로 다른 유저가 를 누르게 되면 좋아요 카운트가 올바르게 업데이트 되지 않을 수 있다. A가 카운트를 증가 후 저장하기 전에 B가 를 요청할 경우다. Django의 F() expressions를 사용하면 이를 해결할 수 있다. 해당 표현을 사용하게 되면 실제 데이터를 메모리에 올려 놓은 후 수정하는 것이 아니라 바로 수정할 수 있게 된다. 와 같이 코드를 작성하여 동시에 같은 컬럼의 값을 수정하게 되는 것을 순차적으로 하도록 하게 한다. 관련 문서 https://docs.djangoproject.com/en/4.0/ref/models/expressions/#f-expressions [Django] 서로 다른 유저에게 좋아요 카운트를 동시에 받게…

February 16, 2022
TIL
DJANGO
데이터베이스 간 관계

데이터베이스 간 관계 👉👈 1. One-to-many 📗 우선 위키피디아(Wikipedia) 정의를 보자. In systems analysis, a one-to-many relationship is a type of cardinality that refers to the relationship between two entities (see also entity–relationship model) A and B in which an element of A may be linked to many elements of B, but a member of B is linked to only one element of A. For instance, think of A as books, and B as pages. A book can have many pages, but a page can only be in one book. (쿠니번역🤖 ) 시스템 분석에서 는 다음과 같은 두 개체간 관계를 …

January 21, 2022
TIL
DJANGO
DB
장고(Django) Authentication 사용 해 보기

장고(Django) Authentication 사용 해 보기 1. 세팅 (models.py, setting.py) Django프로젝트를 처음 만들면 admin 페이지가 이미 구축이 되어 제공되어 진다. 그래서 우리는 을 만든 후 로그인을 하면 해당 페이지를 이용할 수 있다. 여기서 ’ 을 만들 수 있다?’ 그렇다. 이미 DB에 유저를 생성할 수 있는 모델이 있다라는 것이다. 우리는 그 모델의 각 필드와 제약조건을 으로 그대로 가져와 새로운 유저 모델을 만들 수 있다. (패스워드 암호화에 대한 코드를 따로 작성할 필요도 없고, 로그인 인증도 쉽게 할 수 있다) 프로젝트명과 같은 이름의 앱 폴더 안에 있는 에 아래의 코드를 추가 해줘야 한다. 기본 인증과정(AUTH_USER_MODEL)을 user앱에 작성한 UserModel로 사용하겠다는 의미 입니다. (기본적으로 장고(Django)는 룰 사용자 관리 테이블로 지정해 놓음) 2. 활용하기 (views.py) 로그인 로 db에 id,…

January 20, 2022
TIL
DJANGO
장고(Djnago)는 뭘까?

장고(Django)는 뭘까? 🤔 는 파이썬 웹 프레임워크 중 하나다. 공식 홈페이지를 살펴보면 함축적으로 이를 잘 설명하고 있다. The web framework for perfectionists with deadlines. Django makes it easier to build better web apps more quickly and with less code. (발번역중🥲) 마감시간 완벽하게 지키는 이를 위한 웹 프레임워크. 는 더 적은 코드로 더 빠르고 좋은 웹 어플리케이션을 쉽게 만들어준다. 지금까지 사용했던 (경량 파이썬 웹 프레임워크)보다 더 많은 유틸(기능)들을 제공한다 ex) DB, 로그인, Admin, 패스워드 암호화 등. 그리고 대형 웹 프로젝트에 사용하기 적합하며, 커뮤니티와 문서가 다른 파이썬 웹프레임워크 보다는 잘 되어 있다. 장고(Django)는 MTV패턴을 사용한다 M (Model) 데이터베이스의 모델(ORM) 저장되고 사용되는 데이터의 형태 T (T…

January 19, 2022
TIL
DJANGO