언어/파이썬 & 장고
-
[Django REST framework] Routers(작성중)언어/파이썬 & 장고 2016. 8. 9. 13:31
RoutersRails와 같은 몇 web framework들은 들어오는 request를 핸들링하여 logic과 어플리케이션을 위한 URL을 어떻게 매핑할지를 자동으로 결정하는 기능을 제공합니다. REST framework는 장고에 자동적인 URL 라우팅 기능을 지원하고 신속하고 일관성 있는 방법을 제공합니다.UsageSimpleRouter에 대한 예제입니다.from rest_framework import routers router = routers.SimpleRouter() router.register(r'users', UserViewSet) router.register(r'accounts', AccountViewSet) urlpatterns = router.urlsregister() method는 2개..
-
[Django REST framework] ViewSet언어/파이썬 & 장고 2016. 8. 3. 14:22
ViewSetsDjango REST framework는 단일 클래스에서 관련있는 view들의 집합을 위해 logic의 결합을 허용합니다. 이를 ViewSet이라 합니다. 또한 다른 framework에서 resource 또는 controller같이 이름이 개념적으로 유사한 implementation을 찾을 수 있습니다.클래스는 단순하게 class 기반 view 타입이며 이는 .get() 또는 .post()와 같은 모든 method 핸들러를 제공하지 못하지만 대신 .list()와 .create()같은 액션을 제공합니다.ViewSet을 위한 method 핸들러들은 as_view()함수를 사용해 view가 끝나는 시점에 해당하는 행동이 취할 때, 바인딩 합니다.일반적으로 url설정의 viewset안에서 view..
-
[Django REST Framework] Serializers언어/파이썬 & 장고 2016. 7. 20. 15:09
serializer는 queryset 과 모델 인스턴스와 같은 복잡한 데이터를 JSON, XML 또는 다른 콘텐츠 유형으로 쉽게 변환 할 수 있습니다. 또한 serializer는 받은 데이터의 유효성(validation)을 검사한 다음, 복잡한 타입으로 형변환을 할 수 있도록 serialization을 제공합니다. REST framework의 serializer는 Django의 형태와 ModelForm 클래스와 유사하게 동작합니다.SerializersSerializer 선언먼저 간단한 객체를 선언한 모습입니다.class Comment(object): def __init__(self, email, content, created=None): self.email = email self.content = con..
-
[Python]raise를 사용한 예외 처리 custom언어/파이썬 & 장고 2016. 7. 20. 15:07
파이썬에서 제공하는 error 메세지가 아닌 에러 메세지를 추가적으로 생성하고 발생시키는 방법을 설명합니다.오류 생성오류는 다음과 같이 파이썬 내장 클래스인 Exception클래스를 상속하여 만들 수 있습니다.class MyError(Exception): pass 그리고 다음과 같이 간단한 코드를 개발해 에러를 일부러 발생시켜보겠습니다.def test(str): if str =='1': raise MyError() else: print("ok") test("0") test("1")위를 실행할 경우 0은 출력이 되지만 1에서는 MyError()가 발생합니다. 만약 오류메세지를 이용하고 싶다면 다음처럼 예외처리를 합니다.try: test("0") test("1") except MyError as e: pri..
-
[Django] orm언어/파이썬 & 장고 2016. 7. 8. 17:27
장고에서 제공하는 모델을 사용하기 위해선 from 앱이름.models import 모델명, 모델명1과 같이 선언해야 합니다.먼저 django orm 사용에서 복잡한 쿼리에 대해 적합하지 않습니다. 예를 들어, 두 테이블 간 join을 하기 위해선 foriegn key가 잡혀 있어야만 join이 가능한 상태입니다. 복잡한 쿼리의 같은 경우 orm을 지양하는 것이 좋습니다.또한 여기서는 restframework도 같이 설명하고 있기 때문에 레퍼런스를 보고 싶은 분은 아래 링크를 확인해 주시기 바랍니다.http://www.django-rest-framework.org/http://www.django-rest-framework.org/api-guide/serializers/SelectGet단일 행 결과를 반환하..
-
파이썬이란?언어/파이썬 & 장고 2016. 7. 6. 15:07
파이썬이란?파이썬이란 1990년 암스테르담의 귀도 반 로섬(Guido Van Rossum)에 의해 만들어진 인터프리터 언어이다. 귀도는 이 파이썬이라는 이름을 본인이 좋아하는 "Monty Python's Flying Circus"라는 코미디 쇼에서 따왔다고 한다. 파이썬(Python)의 사전적인 뜻은 고대 신화 속의 파르나수스(Parnassus) 산의 동굴에 살던 큰 뱀으로서, 아폴로가 델파이에서 파이썬을 퇴치했다는 이야기가 전해지고 있다. 대부분의 파이썬 책 표지와 아이콘이 뱀 모양으로 그려져 있는 이유가 여기에 있다.현재 파이썬은 국내에서는 많이 알려져 있지 않지만 외국에서는 학습의 목적뿐만 아니라 실용적인 부분에서도 많이 사용되고 있는데 그 대표적인 예는 바로 구글(Google) 이다. 구글에서 만..
-
[Django] model 내 DateTimeField 사용시 RuntimeWarning: DateTimeField received a naive datetime 에러언어/파이썬 & 장고 2016. 6. 25. 11:28
장고에서 제공하는 모델을 사용하여 개발할 때, settings.py에 아래와 같이 설정이 되어 있을 것입니다.LANGUAGE_CODE = 'en-us' TIME_ZONE = 'Asia/Seoul' USE_I18N = True USE_L10N = True USE_TZ = True pgsql 테이블 내 컬럼 타입이 timestamp without time zone인 것을 테이블 스키마를 장고로 inspectdb를 할 시, DateTimeField로 정의가 됩니다.그리고 사용자는 해당 컬럼에 대해 datetime.now()와 같이 값을 넣을 때, 문제가 발생합니다.settings.py 에 정의 된 것처럼, timezone이 서울로 되어 입력이 되어야 하지만, 실제 들어간 데이터를 확인해 보면 UTC기준으로 입..
-
parameter (또는 argument) 앞에 *, ** (아스테리크 = asterisk = 별표) 의미언어/파이썬 & 장고 2016. 6. 23. 18:47
장고 orm이나 파이썬 코드를 보면 *args, **kwargs를 확인할 수 있습니다.해당 뜻은 어떤 파라미터를 몇개를 받을지 모르는 경우 사용한다 라고 하지만 막연하기 때문에 예를 들어 설명하겠습니다.*args *args는 파라미터를 몇개를 받을지 모르는 경우 사용하고 튜플 형태로 전달됩니다. def test(*args): print(args) test('a','b','c') #결과 ('a', 'b', 'c')위처럼 argument로 여러 값을 던지고 해당 함수에서 tuple을 사용할 수 있습니다. dict타입과 같이 변수 자체를 그대로 넘기면 튜플 내에 데이터 1개로 취급됩니다.def test(*args): print(args) a = {'name': 'a', 'name2': 'b', 'name3':..
-
[Django] settings.py 파일 분리언어/파이썬 & 장고 2016. 5. 21. 11:55
base.py """ Django settings for polalis project. Generated by 'django-admin startproject' using Django 1.8.6. For more information on this file, see https://docs.djangoproject.com/en/1.8/topics/settings/ For the full list of settings and their values, see https://docs.djangoproject.com/en/1.8/ref/settings/ """ # Build paths inside the project like this: os.path.join(BASE_DIR, ...) import os BASE..
-
[Python] 환경변수 분리언어/파이썬 & 장고 2016. 5. 21. 11:53
이전 장고의 settings.py 파일을 분리했던 것과 같은 이유로 환경변수를 분리하는 방법을 설명하겠습니다. 코드import sys def get(func): try: for i in range(1, len(sys.argv)): settings_str = "--settings=" settings_index = sys.argv[i].find(settings_str) # 받은 argument 중 좌변이 환경변수 분리 키 값일 경우, 우변의 값을 경로를 저장합니다. if settings_index != -1: # 입력받은 값을 변수에 저장 actions = sys.argv[i][settings_index + len(settings_str):] # 받은 값으로 import로 선언 tmp = __import__..