[django] 장고 시작하기

Joy·2020년 6월 3일

ref: 노마드코더

django

웹 프레임워크 - 파이썬으로 프론트에 백엔드 API 만들기 가능
https://www.djangoproject.com/

> *args , **kwargs

arguments
keyword arguments

argument에는 두가지 종류가 있음

  • positional arg : 위치
    *args 를 함수에 쓰면 -> positional args infinit
    튜플로 나옴

  • keywrod arg : 함수가 받는 키워드
    **kwargs 를 쓰면 키워드 아규먼트가 엄청 많다는 뜻.
    딕셔너리형태로 나옴

> object oriented programming

class

클래스는 청사진/설계도 같은 개념.
클래스 안에는 인스턴스가 있음. 설계도로 만든 결과물.

#기본 청사진 - 베이스가 되는 것 정해줌.
class Car():
	wheels = 4
    doors = 4
    windwos = 4
    seats = 4

#Car 클래스의 인스턴스 만들기 - instanciation
porche = Car()
print(porche.windows) #4
porch.color ="red"

#원하는 만큼 인스턴스 생성 가능
ferrari = Car()
ferraro.color = "yellow"

> Method

메소드 -> 클래스 안에 있는 function

파이썬은 모든 함수를 하나의 argument랑 함께 사용 - 모든 메서드의 첫 아규먼트는 메서드를 호출하는 인스턴스 자신 (self)


class Car():
	wheels = 4
    doors = 4
    windwos = 4
    seats = 4
    
    def start(): #def start(self)
    	print("I started")


porche = Car()
porche.start() #에러 : start takes 0 positional arg but 1 is given -> 파이썬은 모든 함수를 하나의 argument랑 함께 사용(self) 모든 메서드의 첫 아규먼트는 메서드를 호출하는 인스턴스 자신. 그래서 메서드에는 아규먼트를 써줘야함(이름이 뭔진 상관없음. 주로 self)




숨겨진 메서드들

dir로 Car의 모든 프로퍼티를 리스트형식으로 보면,,숨겨진 메서드를 볼수 있음. 이것들은 override 할 수 있음

  • str : 호출할때마다 그 class의 instance 보여줌
  • init : 자동으로 생성


init 함수에 다 넣어주면, 인스턴스로 만들 때 키워드아규먼트 줄 수 있음.

kwarg는 딕셔너리임. 딕셔너리는.get으로 (k, d)를 가져올 수 있음 (키, 디폴트:없을때 설정)

> class extending

클래스 상속 inheritance or 확장 extending

기존 클래스를 가져가면서 새로운 메서드를 추가하고 싶을 때 -> 새 클래스 아규먼트 자리에 상속 받을 클래스 이름 써줌

그러면 Convertable 클래스는 extended Car 클래스 임.



method extending

Car에 있는 메서드를 convrtable에서 새롭게 정의하면 override한느거라서 car에 있는거 사용X -> super이용해서 부모클래스 호출해주기





장고는 유용한 클래스들의 모음이고 이걸 확장하고 활용하면 됨.

profile
roundy

0개의 댓글