def sum(num1, *args):
if len(args) != 0:
return num1 + sum(*args)
else :
print('--args example--')
return num1
print(sum(1, 2, 3, 4, 5, 6, 7))
def print_info(**kwargs):
print('--kwargs example--')
if kwargs is not None:
for item in kwargs.items():
print(f'{item[0]} is {item[1]}')
print_info(name='dongwoo', year=29, weight=75, height=176)
: int, float, bool, string, unicode, tuple
: list, dict, set (+ 사용자 정의 클래스)
tup = ([3, 4, 5], '내 이름')
위의 튜플은 리스트와 문자열로 구성된다. 문자열은 변경할 수 없으므로 값을 변경할 수 없지만 리스트의 내용은 변경될 수 있다. 따라서 튜플 자체는 변경할 수 없지만 변경 가능한 항목을 포함할 수 있다.: A many-to-one 관계를 나타내며 2가지의 인자(관계를 맺을 클래스와 on_delete option)가 필요하다.
example
from django.db import models class AbstractCar(models.Model): manufacturer = models.ForeignKey('Manufacturer', on_delete=models.CASCADE) class Meta: abstract = True
on_delete option
1) CASCADE : 삭제된 객체와 ForeignKey를 포함하는 객체도 삭제
2) PROTECT : ForeignKey를 가진 객체를 삭제 방지
3) RESTRICT : ForeignKey를 가진 객체를 삭제 방지 하지만 CASCADE에 의해 삭제될 수 있음
4) SET_NULL : True인 경우에 null로 지정
5) SET_DEFAULT : 기본 ForeignKey 설정
6) SET() : 해당 값으로 설정
7) DO_NOTHING : 아무 작업도 안함
: primary_key=True인 경우 모델의 기본 키가 된다.
null=False와 unique=True의 의미를 가지고 객체는 단하나의 primary key만 설정 가능
: 정의한 모델로 생성한 실제 객체 데이터
: DB에 저장된 object들의 집합
Django Queryset - w3schools
A QuerySet is a collection of data from a database.
A QuerySet is built up as a list of objects.
QuerySets makes it easier to get the data you actually need, by allowing you to filter and order the data.
mutable vs immutable in python
https://www.geeksforgeeks.org/mutable-vs-immutable-objects-in-python/
Foriegn Key, Primary Key
https://docs.djangoproject.com/en/4.0/ref/models/fields/
QuerySet
https://www.w3schools.com/django/django_queryset_get.php