일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- django widget
- es6
- 알고리즘 풀이
- django ORM
- 파이썬
- 알고리즘 연습
- c++
- HTML
- Django
- 장고
- AWS
- Algorithm
- java
- web
- CSS
- 알고리즘
- javascript
- API
- js
- Git
- react
- 파이썬 알고리즘
- DRF
- MAC
- PYTHON
- django rest framework
- form
- 알고리즘 문제
- Baekjoon
- 백준
- Today
- Total
목록장고 (17)
수학과의 좌충우돌 프로그래밍
django 에서는 view 를 통해서 HTTP 요청을 처리합니다. view에서 이를 처리하는 방법은 다양합니다. FBV(함수기반뷰), CBV(클래스기반뷰) 를 통해서도 API 를 만들 수 있지만 rest_framework 는 보다 쉽게, 효율적으로 만들 수 있습니다. Serializer [Django] django rest framework 를 위한 JSON 직렬화 [Django] django rest framework 를 위한 JSON 직렬화 ModelSerializer 를 통한 JSON 직렬화 DRF 에서는 ModelSerializer 를 통해 JSONRenderer 에서 변환가능한 형태로 먼저 데이터를 변환합니다. Serializer 는 장고의 Form 과 유사하며 ModelSerializer는 ..
금액을 표시할 때 통상적으로 세 자리마다 콤마를 찍어주곤 합니다. 장고 템플릿에서도 이 기능을 지원해주는데 함께 알아보도록 하겠습니다. 먼저 settings.py 에 app을 추가해야합니다. 이 app 은 장고에서 기본적으로 제공해주므로 별도의 작업없이 추가만 해주면 됩니다. # settings.py INSTALLED_APPS = [ ... 'django.contrib.humanize', ... ] 다음으로는 이를 html 파일에 로드해줘야 합니다. {% load humanize %} 이제 comma 를 찍어주는 일만 남았습니다. 템플릿 필터를 사용하여 추가해줍니다. item 라는 object에 price 라는 필드라고 가정해보도록 하겠습니다. {{ object.price }} {{ object.pric..
글 수정 시 기존의 내용 불러오기 글 수정 기능을 구현했지만 수정을 하게 되면 처음부터 글을 다시 쓰는 것과 다를 바가 없었다. 따라서 이를 해결하기 위해서 기존의 데이터를 불러오도록 했다. 먼저 기존에 존재하던 글 수정 함수 edit을 살펴보자. from .form import CatPost def edit(request, cat_id): cat = Cat.objects.get(id=cat_id) # 글을 수정사항을 입력하고 제출을 눌렀을 때 if request.method == "POST": form = CatPost(request.POST, request.FILES) if form.is_valid(): print(form.cleaned_data) cat.name = form.cleaned_data[..
삭제 시 경고창 띄워주기 현재 post 한 글과 댓글이 삭제 버튼을 누르게 되면 망설임없이 바로 삭제 된다. 삭제 시에는 복원이 불가능하고 실수할 가능성이 있기 떄문에 경고창을 띄워서 이를 해결하자. post한 글과 댓글 경고창을 처리한 방식의 약간의 차이가 있어서 따로 다뤄주겠다. post 글 삭제 경고창 우선 기존의 삭제는 a 태그를 통해서 글을 삭제하는 기능을 수행하도록 url을 넘겨주었다. Delete 이제 바로 url을 넘겨주지 않고 modal 을 띄워준 후 modal 에서 삭제하기 를 누를 시 이 url로 넘어가도록 하겠다. 기존의a 태그를 수정해주자. Delete data-toggle="modal": 모달 창을 여는 역할 data-target="#CatModal": 모달의 id로 연결해주는 ..
글 삭제 및 수정 교내 주인 없는 고양이들을 관리해줄 수 있는 사이트를 제작중이다. home.html 에 접속하면 여러 고양이들의 존재하고 각 고양이를 클릭하면 localhost:8000/detail/ 로 이동하여 detail.html 에서 상세 정보를 확인할 수 있다. 이 상황에서 고양이가 학교를 떠나서 고양이 정보를 담은 글을 삭제하거나 정보를 수정해야할 때, 어떻게 해야하는지 알아보자. [ 글삭제 ] 먼저 글을 삭제하는 기능을 구현해보자. 각 고양이를 클릭하면 detail.html 으로 이동하므로 이 안에 삭제 버튼을 넣어주자. detail.html 외적은 부분은 신경쓰지않고 단순하게 텍스트로 넣어주었다. a 태그 는 delete 라는 url 을 가진 주소로 이동하며 cat.id 를 넘겨준다. ca..
안녕하세요 강민성입니다. 이번 시간에는 app 재사용에 대해서 알아보도록 하겠습니다. 우리가 app 을 기능별로 세분화 하는 이유가 바로 재사용 때문이었습니다. 이 방법을 알아보도록 하겠습니다. app 재사용 하는 법 재사용의 원리 app 을 재사용하기 위해서는 재사용할 app 을 먼저 패키징 해줘야합니다. 패키징이라고 함은 app 을 다른 프로젝트에서 가져가서 사용할 수 있도록 포장하는 일이라고 할 수 있습니다. 그리고 이미 포장을 푸는 방법은 해본 적이 있으실 겁니다. pip install {패키지 이름} 다음과 같은 방식으로 패키지를 풀어줄 수 있습니다. 패키징 하는 법 그럼 패키징하는 방법에 대해서 알아보겠습니다. 패키징을 하기 위해서는 4개의 파일이 필요합니다. 4개의 파일의 이름과 각각의 역할..
안녕하세요 강민성입니다. 이번에는 썸네일에 대해서 알아보도록 하겠습니다. 썸네일이 무엇인지 들어보셨나요? 썸네일이란 여러 이미지 파일 중 이를 대표하는 이미지 파일을 말합니다. 이 블로그 포스팅도 마찬가지입니다. 저는 여러 이미지를 첨부하지만, 목록에서는 대표하는 이미지 하나만 보여주게 되죠. 장고에서도 이런 썸네일을 지정할 수 있습니다. 장고에서 썸네일을 지정하면 이점이 뭐가 있을까요? 다음과 같은 이점이 있습니다. 1. 파일 용량관리에 유리하다. 2. 파일 분류에 효율적이다. thumbnail 만들기 thumbnail 이라는 새로운 프로젝트를 만들고 thumbnailapp 이라는 이름으로 앱을 만들어주었습니다.(settings 에 등록!) 기본 과정은 생략하도록 하겠습니다. 장고 기본 과정 media..
안녕하세요 강민성입니다. 이번 시간에는 form 에 대해서 알아보겠습니다. 앞선 포스팅에서도 form을 다룬 적이 있습니다. blog에 글을 쓰기 위한 form도 만들어 보았고, 회원가입, 로그인 하는 form도 만들어 보았습니다. 하지만 이 때는 단순히 html로 만들었었는데, 장고에서는 모델과 대응시켜 이 form을 만들어 줄 수 있습니다. 이럴 경우, 보다 더 편하게 여러가지 기능을 추가할 수 있는데 이에 대해서 알아보도록 하겠습니다. form을 이용해 입력공간 만들기 마찬가지로 blog project에서 이어서 진행하도록 하겠습니다. 먼저 form.py를 원하는 앱 안에 만들어줘야 합니다. form의 위치는 중요하지 않지만 blog/models.py 의 class 를 불러올 것이기 때문에 편의상 ..
안녕하세요 강민성입니다. 이번 시간에도 마찬가지로 blog project를 이어서 진행해보도록 하겠습니다. 글을 계속 추가할수록 글은 아래로 쌓이게 됩니다. 하지만 대부분의 웹사이트는 일정 수준 이상 쌓이면 다음 페이지로 넘어갈 수 있도록 구현 되어 있습니다. 이를 pagination 이라고 합니다. pagination을 알아보자 한 페이지에 3개의 글이 올 수 있도록 해보겠습니다. 장고에서 역시 이를 위한 클래스가 정의되어 있습니다. 먼저 이를 import 한 후 진행하겠습니다. from django.core.paginator import Paginator blog/view.py 설명할 부분이 많아 전체적인 코드를 먼제 보고 한 줄 씩 설명하겠습니다. blog_list = Blog.objects.all..
안녕하세요 강민성입니다. 이번 시간에는 회원가입과 로그인, 로그아웃 기능을 구현해보도록 하겠습니다. 이 기능들은 고맙게도 장고에서 제공을 해주고 있기 때문에 이 함수들을 가져다가 쉽게 구현할 수 있습니다. 그리고 실습을 시작하기 전에 알아야 하는 개념이 있습니다. 바로 http method인데 가볍게 짚고 넘어가도록 하겠습니다. http 상에서 정보를 주고 받는 방식 http 상에서 정보를 주고 받는 방식은 여러 개 존재합니다. 정보를 주고 받는 방식을 굳이 나눈 이유는 무엇일까요? 아래 코드는 blog app 에서 글을 쓰는 입력창에 해당하는 html 입니다. method를 따로 지정하지 않고 form으로 넘겨주면 GET방식으로 넘어오기에, views에서도 GET 을 사용하여 정보를 받아주고 있습니다...