일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 알고리즘
- CleanCode
- 트라이
- Spring Boot
- jdbc
- 가사 검색
- 불량 사용자
- 티스토리 open api
- 보행자 천국
- 징검다리 건너기
- 트라이 #trie #알고리즘
- 튜플
- pycon
- 크레인 인형뽑기 게임
- 티스토리
- trie
- bulk update
- 카카오 인턴
- Open API
- Python
- 호텔 방 배정
- 프로그래머스
- Tistory
- Today
- Total
목록Django(장고) (19)
택시짱의 개발 노트
10장. 클래스 기반 뷰의 모범적인 이용 장고의 뷰는 요청 객체를 받고 응답 객체를 반환하는 내장 함수다. 함수 기반 뷰에서는 뷰 함수 자체가 내장 함수이고, 클래스 기반 뷰에서는 뷰 클래스가 내장 함수를 반환하는 as_view() 클래스 메서드를 제공한다. django.views.generic.View에서 해당 매커니즘이 구현되며 모든 클래스 기반 뷰는 이 클래스를 직간접적으로 상속받아 이용한다. 10.1 클래스 기반 뷰의 가이드 라인 뷰 코드의 양은 적으면 적을수록 좋다. 뷰 안에서 같은 코드를 반복적으로 이용하지 말자. 뷰는 프레젠테이션 로직에서 관리하도록 하자. 비즈니스 로직은 모델에서 처리하자. 매우 특별한 경우에는 폼에서 처리하자. 뷰는 간단 명료해야 한다. 403, 404, 500 에러 핸들..
9장. 함수 기반 뷰의 모범적인 이용 9.1 함수 기반 뷰의 장점 함수 기반 뷰는 코드 재사용을 희생하여 나온 결과 ??? 함수 기반 뷰는 클래스 뷰처럼 상속하는 기능 없다. 가이드 라인 뷰 코드는 작을수록 좋다. 뷰에서 절대 코드를 반복해서 사용하지 말자 뷰는 프레젠테이션 로직을 처리해야 한다. 비즈니스 로직은 가능한 모델 로직에 적용시키고 만약 해야 한다면 폼 안에 내제시켜야 한다. 뷰를 가능한 단순하게 유지하자. 403, 404, 500을 처리하는 커스텀 코드를 쓰는데 이용하라. ??? 복잡하게 중첩된 if 블록 구문을 피하자. 9.2 HttpResponse 객체 전달하기 뷰에서도 마찬가지로 코드를 재사용하기 원하는 경우가 생긴다. 하지만 미들 웨어(middleware)나 콘텍스트 프로세서(cont..
장고 앱 디자인 용어 A Django project Django web framework를 기반으로 한 web application을 지칭 Django apps 프로젝트의 한 기능을 표현하기 위해 디자인된 작은 라이브러리를 지칭 Django project는 다수의 Django app으로 구성되어 있다. app중 일부는 프로젝트 내부적으로 한 번만 이용되고 재사용되지 않기도 한다. 또는 때때로 외부 장고 패키지를 지칭하기도 한다. Third-party Django packages python package 도구들에 의해 패키지화된, 재사용 가능한 플러그인 형태로 이용 가능한 장고 앱을 지칭한다. 4.1. 장고 앱디자인의 황금률 제임스 베넷(James Bennett)는 장고 코어 개발자이자 릴리스 매니저이고..
3.1. 장고 3's의 기본 프로젝트 구성 django-admin startproject mysite cd mysite django-admin startapp my_app 기본 프로젝트 구조 mysite/ ├── manage.py ├── my_app │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── migrations │ │ └── __init__.py │ ├── models.py │ ├── tests.py │ └── views.py └── mysite ├── __init__.py ├── asgi.py ├── settings.py ├── urls.py └── wsgi.py 3.2. 우리가 선호하는 프로젝트 구성 원서 업데이트 내용 / ├── / ├── ..
1. 코딩 스타일 읽기 쉬운 코드를 만들기 위해서는 축약적이거나 함축적인 변수명은 피한다. 함수 인자의 이름들은 꼭 써준다. 클래스와 메서드를 문서화한다. 코드에 주석은 꼭 달도록 한다. 재사용 가능한 함수 또는 메서드 안에서 반복되는 코드들은 리팩터링을 해둔다. 함수와 메서드는 가능한 작은 크기를 유지한다. 어림잡아 스크롤 없이 읽을 수 있는 길이가 적합하다. 임포트 (import) PEP 8은 임포트(import)를 할 때 다음과 같은 순서를 제안 표준 라이브버리 임포트 연관 외부 라이브러리 임포트 로컬 애플리케이션 또는 라이브러리에 한정된 임포트 장고 프로젝트 안에서는 아래와 같은 순서로 임포트 문들을 구성할 수 있다. # 표준 라이브러리 임포트 from math import sqrt from os..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/y4yOn/btqWX5LlTUF/7W0Lskv3kQjsvSZVa8K4l0/img.png)
django DRF를 이용해서 api를 만들면서 내가 원하는 형식으로 response를 만들기를 원했는데DRF 문서를 보고 찾았습니다. (renderer)www.django-rest-framework.org/api-guide/renderers/#jsonp Renderers - Django REST framework www.django-rest-framework.org user의 정보를 알려주는 view는 modelviewset을 이용하였습니다. 현재 api의 response는 필요한 data만을 제공해주고 있습니다. 여기서 저는 이런 형식의 response를 만들기를 원했습니다.code, message, data를 분리하여 알려 줄수 있는 그런 형식.... DRF문서의 renderer에서 해결 방법을 찾..
serializer.save를 호출시 serializer안에 instance가 있다면 serializer.save는 update를 호출하고 serializer안에 instance가 없다면 serializer.save는 create를 호출한다
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/mWb3r/btqNDoeDq21/V9v1oNiQG480bs5o3o0jj0/img.png)
ORM (Object-Relational Mapping) ORM 이란? ORM은 Object Relational Mapping 즉, 객체-관계 매핑의 줄임말 이다. 객체-관계 매핑을 풀어서 설명 하자면 우리가 OOP(Object Oriented Programming)에서 쓰이는 객체라는 개념을 구현한 클래스와 RDB(Relational DataBase)에서 쓰이는 데이터인 테이블을 자동으로 매핑(연결)하는 것을 의미한다. 그러나 클래스와 테이블은 서로가 기존부터 호환가능성을 두고 만들어진 것이 아니기 때문에 불일치가 발생하는데, 이를 ORM을 통해 객체 간의 관계를 바탕으로 SQL문을 자동으로 생성하여 불일치를 해결한다. 따라서 ORM을 이용하면 따로 SQL문을 짤 필요없이 객체를 통해 간접적으로 데이터..