언어/파이썬 & 장고
-
[Python] 함수를 변수에 담아 사용하기언어/파이썬 & 장고 2016. 10. 7. 10:46
def other_method(a): print(a) val = other_method val(123) # 123함수를 변수에 담아서 사용이 가능하기 때문에 list나 dict 타입에도 넣어서 사용이 가능합니다.def plus(a, b): return a + b def minus(a, b): return a - b list = [plus, minus] a = list[0](1, 2) b = list[1](1, 2) print(a, b) # 3, -1 파이썬은 함수를 일급 객체로 다루기 때문에 이러한 일이 가능합니다. 일급 객체는 프로그래밍 설계에서 매개변수로 넘길 수 있고 함수가 반환할 수 있으며 변수에 할당이 가능한 객체를 가리키는 용어입니다. 함수를 다른 함수의 매개변수로 사용할 수 있습니다.def ..
-
[Python] 리스트 메소드언어/파이썬 & 장고 2016. 10. 7. 10:01
append()리스트의 끝에 입력받은 값을 추가a=[1,2,3] a.append(4) print(a) # [1,2,3,4]extend()기존리스트에 다른 리스트를 이어 붙임 + 연산자와 같은 기능a=[1,2,3] a.extend([4,5,6]) print(a) # [1,2,3,4,5,6]insert()리스트의 끝에 입력받은 값을 추가a=[2,3,4] a.insert(0,1) # 0번째에 1을 추가 print(a) # [1,2,3,4]remove()입력받은 값을 리스트에서 찾아 삭제a=[1,2,3] a.remove(3) print(a) # [1,2]pop()파라미터를 입력하지 않으면 리스트의 가장 마지막 데이터를 삭제.지우고자하는 인덱스를 입력하면 해당 요소 삭제a=[1,2,3,4,5] a.pop() pr..
-
[Python] 문자열 메소드언어/파이썬 & 장고 2016. 10. 7. 09:44
startswith()원본 문자열이 매개변수로 입력한 문자열로 시작하는지 판단결과는 boolean으로 리턴a='hello' a.startswith('he') # True a='hello' a.startswith('lo') # Falseendswith()원본 문자열이 매개변수로 입력한 문자열로 끝나는지 판단결과는 boolean으로 리턴a='hello' a.startswith('he') # False a='hello' a.startswith('lo') # Truefind()문자열 내에 입력된 문자열이 어느 위치에 존재하는지 앞에서부터 찾습니다.만약 존재하지 않으면 -1을 리턴합니다.a='hello' b=a.find('ll') print(b) # 2 b=a.find('h') print(b) # 0rfind()..
-
[Python] dict 타입끼리 더하기언어/파이썬 & 장고 2016. 10. 5. 18:03
a = {'a':1,'b':2,'c':3} b= {'d':4,'e':5,'c':4444} # 1. 덧셈 z=a+b print(z) # dict끼리는 +를 지원하지 않아 에러 # 2. z = {**a, **b} # python 3.5부터 지원 이하버젼 x # 3. z = a.copy() z.update(b) # dict끼리 덧셈이 가능하고 동일한 키가 존재하면 키들 간에 가장 큰 값으로 대체됨 # 3.1 응용편 def merge(*dict_args): print(dict_args) result = {} for dictionary in dict_args: result.update(dictionary) return result a = {'a':1,'b':2,'c':3} b= {'d':4,'e':5,'c':44..
-
[Django] ORM JOIN언어/파이썬 & 장고 2016. 10. 5. 13:50
django에서 orm을 사용해 join을 하는 방법은 여러가지가 존재합니다. orm에서 제공하는 함수를 사용하기 위해선 먼저 테이블간 foreign key가 잡혀있어야만 가능합니다. 지금부터 foreign key를 논리적으로 잡는 방법 및 foreign key가 잡혀있을 때의 join과 foreign key가 존재하지 않을 때 join하는 방법을 소개하겠습니다.1. test case (sql)CREATE TABLE public."group" ( id integer NOT NULL DEFAULT nextval('group_id_seq'::regclass), name text NOT NULL, age smallint, num integer, CONSTRAINT group_pkey PRIMARY KEY (i..
-
[Django] ORM fields 이름 변경 방법 (select field as other ...)언어/파이썬 & 장고 2016. 9. 30. 16:38
0. sql문select original as change from mymodel1. extra() 사용MyModel.objects.extra(select={'change': 'original'}).values('change')2. annotate() 사용from django.db.models import F MyModel.objects.annotate(change=F('original')).values('change') annotate()에서 F를 사용하는 방법은 Django 1.8이상만 사용가능
-
[Django django-filter] FilterSet Guide언어/파이썬 & 장고 2016. 9. 26. 15:50
Meta OptionsAutomatic filter generation with modelFilterSet은 주어진 model의 필드를 위해 자동적으로 필터를 생성 할 수있습니다. 장고의 ModelForm과 마찬가지로, 필터는 기본 모델 필드의 유형에 따라 생성됩니다. 이 옵션은 장고의 ModelForm클래스에서 같은 requirement가 있는 fields나 exclude 옵션 중 하나와 결합되어야 합니다. 자세한 사항은 here 있습니다.class UserFilter(django_filters.FilterSet): class Meta: model = User fields = ['username', 'last_login']Declaring filterable fieldsfields 옵션은 자동으로 필터..
-
[Django django-filter] Django Rest Framework언어/파이썬 & 장고 2016. 9. 26. 15:50
Django Rest Framework의 통합은 DRF-특정 FilterSet 및 filter backend를 통해 제공됩니다. 이것들은 rest_framework 서브 패키지에서 찾을 수 있습니다.Quickstart새로운 FilterSet을 사용하면 import path를 변경해야합니다. django_filters를 import하는 것 대신 rest_framework 서브 패키지를 import 해야합니다.from django_filters import rest_framework as filters class ProductFilter(filters.FilterSet): ... 사용자의 view 클래스는 또한 filter_backends에 DjangoFilterBackend추가하는 것을 필요로 합니다.fr..
-
[Django django-filter] Using django-filter언어/파이썬 & 장고 2016. 9. 26. 15:50
Django-filter는 view에 작성된 일반적인 코드를 계속 쓰는 부담을 덜어주는 일반적이고 재사용가능한 어플리케이션입니다. 구체적으로는 사용자들은 모델의 필드를 기반으로 queryset을 필터링 할 수 있습니다. Using django-filterdjango-filter는 사용자가 제공하는 파라미터에 기초하여 queryset을 필터링 할 수있는 간단한 방법을 제공합니다. 지금부터 예시로 Product라는 모델을 가지고 있다고 가정하고 우리의 사용자의 list 페이지에 제품을 필터링하여 보여질 수 있도록 하는 예시를 들겠습니다.The modelfrom django.db import models class Product(models.Model): name = models.CharField(max_le..