210412 TIL
TIL
์ด์์ฒด์ ๊ณต๋ถ
ํ์ด์ฌ ์ฌํ
class Student():
"""
Student Class
Author: sdk
Date: 2021.04.12
"""
# ํด๋์ค ๋ณ์
student_count = 0
def __init__(self, name, number, grade, details, email=None):
# ์ธ์คํด์ค ๋ณ์
self._name = name
self._number = number
self._grade = grade
self._details = details
self._email = email
# ํด๋์ค ๋ณ์์ ์ ๊ทผํ๊ธฐ
Student.student_count += 1
def __str__(self):
return 'str {}'.format(self._name)
def __repr__(self):
return 'repr {}'.format(self._name)
def detail_info(self):
print('Current Id : {}'.format(id(self)))
print('student Detail Info : {} {} {}'.format(self._name, self._email, self._details))
def __del__(self):
Student.student_count -= 1
# self์ ์๋ฏธ
studt1 = Student('cho', 2 ,3, {'gender': 'Male', 'score1': 65, 'score2': 44})
studt2 = Student('chang', 4 ,1, {'gender': 'Female', 'score1': 85, 'score2': 74}, 'stu2@naver.com')
# ์์ด๋ ๊ฐ์ด ๋ค๋ฅด๋ค.
print(id(studt1)) # 140202496724944
print(id(studt2)) # 140202496724848
# is ๋ ์์ด๋ ๊ฐ์ ๋น๊ต, == ๋ ๊ฐ์ ๋น๊ต
print(studt1._name == studt2._name) # False
print(studt1 is studt2) # False
# dir & __dict__ ํ์ธ
print(dir(studt1)) #['__class__', '__del__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_details', '_email', '_grade', '_name', '_number', 'detail_info', 'student_count']
print(dir(studt2))
print(studt1.__dict__)
# {'_name': 'cho', '_number': 2, '_grade': 3, '_details': {'gender': 'Male', 'score1': 65, 'score2': 44}, '_email': None}
print(studt2.__dict__)
# Doctring - ์ฃผ์์ ์ถ๋ ฅ
print(Student.__doc__)
# Student Class
# Author: sdk
# Date: 2021.04.12
print()
# ์คํ
studt1.detail_info()
# Current Id : 140202496724944
# student Detail Info : cho None {'gender': 'Male', 'score1': 65, 'score2': 44}
studt2.detail_info()
# ์๋ฌ
Student.detail_info()
-
์ธ์คํด์ค ๋ณ์์ ํด๋์ค๋ณ์์ ์ฐจ์ด ์ดํด
-
dir()
ํจ์์__dict__
์ฐจ์ด ์ดํด -
Student.detail_info()
๊ฐ ์ ์๋ฌ๊ฐ ๋๋์ง ์ดํด(์ธ์๊ฐ ์๊ธฐ์)์ผํ๋ชฐ ๋ง๋ค๊ธฐ
-
์ ์ , ์ํ, ์ฃผ๋ฌธ 3๊ฐ์ app์ ์์ฑํ๋ค.
-
๊ฐ๊ฐ model์ ๊ตฌ์ฑํ๋ค.
# ์ ์ ๋ชจ๋ธ
class Fcuser(models.Model):
email = models.EmailField(verbose_name='์ด๋ฉ์ผ')
password = models.CharField(max_length=64, verbose_name='๋น๋ฐ๋ฒํธ')
register_date = models.DateTimeField(auto_now_add=True, verbose_name='์์ฑ๋ ์ง')
def __str__(self):
return self.email
class Meta:
db_table = 'products_user'
verbose_name = '์ฌ์ฉ์'
verbose_name_plural = '์ฌ์ฉ์'
# ์ํ ๋ชจ๋ธ
class Product(models.Model):
name = models.CharField(max_length=256, verbose_name='์ํ๋ช
')
price = models.IntegerField(verbose_name='์ํ๊ฐ๊ฒฉ')
description = models.TextField(verbose_name='์ํ์ค๋ช
')
stuck = models.IntegerField(verbose_name='์ฌ๊ณ ')
register_date = models.DateTimeField(auto_now_add=True, verbose_name='๋ฑ๋ก๋ ์ง')
def __str__(self):
return self.name
class Meta:
db_table = 'products_product'
verbose_name = '์ํ'
verbose_name_plural = '์ํ'
# ์ฃผ๋ฌธ ๋ชจ๋ธ
class Order(models.Model):
fcuser = models.ForeignKey('fcuser.Fcuser', on_delete=models.CASCADE, verbose_name='์ฌ์ฉ์')
product = models.ForeignKey('product.Product', on_delete=models.CASCADE, verbose_name='์ํ')
quantity = models.IntegerField(verbose_name='์๋')
register_date = models.DateTimeField(auto_now_add=True, verbose_name='๋ฑ๋ก๋ ์ง')
def __str__(self):
return str(self.fcuser) + ' ' + str(self.product)
class Meta:
db_table = 'products_order'
verbose_name = '์ฃผ๋ฌธ'
verbose_name_plural = '์ฃผ๋ฌธ'
Author And Source
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(210412 TIL), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://velog.io/@sdk1926/210412-TIL์ ์ ๊ท์: ์์์ ์ ๋ณด๊ฐ ์์์ URL์ ํฌํจ๋์ด ์์ผ๋ฉฐ ์ ์๊ถ์ ์์์ ์์ ์ ๋๋ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ
์ธ ๋ฐ๊ฒฌ์ ์ ๋
(Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค