π¦ λ΄μΌλ°°μμΊ ν
-
restframework-simplejwt μΈμ¦μ μ’ λ₯ 1. μΈμ μΈμ¦ λ°©μ λΈλΌμ°μ μμ μ¬μ©μκ° μΈμ¦(Authentication)μ μννλ©΄ μλ²μμ μ¬μ©μμ μ 보λ₯Ό μ μ₯. μλ΅μΌλ‘ μΈμ (JSESSIONID) ν€λ₯Ό μ΄μ©ν΄ ν΄λΌμ΄μΈνΈ λΈλΌμ°μ μ μΏ ν€μ μΈμ (JSESSIONID)μ μ 보λ₯Ό μ μ₯νκ² λ¨. ν΄λΌμ΄μΈνΈλ λΈλΌμ°μ μΏ ν€μ μ μ₯λ μΈμ μΌλ‘ μ μ₯λ μΈμ μ 보λ₯Ό μ΄μ©ν΄ μΈκ°(Authrization)λ μ 보μ μ κ·Ό νμ©. 2. ν ν° μΈμ¦ λ°©μ ν ν° μΈμ¦ λ°©μμ μ¬μ©μκ° μΈμ¦μ μννλ©΄ μλ²μμλ ν ν°μ μμ±ν λ€μ μ μ₯νμ§ μκ³ (stateless) ν ν°κ°μ μ¬μ©μμ λΈλΌμ°μ μκ² μλ΅ν¨. ν ν°κ°μ μ¬μ©μκ° μΈκ°λ μ¬μ©μλ§ μ¬μ©ν μ μλ μλΉμ€λ₯Ό μμ²ν λ ν¨κ» 보λ΄κ² λκ³ , μλ²μμ μ΄ ν ν°μ μλ―Έ μλ ..
TIL_220630_rest_framework_simplejwtrestframework-simplejwt μΈμ¦μ μ’ λ₯ 1. μΈμ μΈμ¦ λ°©μ λΈλΌμ°μ μμ μ¬μ©μκ° μΈμ¦(Authentication)μ μννλ©΄ μλ²μμ μ¬μ©μμ μ 보λ₯Ό μ μ₯. μλ΅μΌλ‘ μΈμ (JSESSIONID) ν€λ₯Ό μ΄μ©ν΄ ν΄λΌμ΄μΈνΈ λΈλΌμ°μ μ μΏ ν€μ μΈμ (JSESSIONID)μ μ 보λ₯Ό μ μ₯νκ² λ¨. ν΄λΌμ΄μΈνΈλ λΈλΌμ°μ μΏ ν€μ μ μ₯λ μΈμ μΌλ‘ μ μ₯λ μΈμ μ 보λ₯Ό μ΄μ©ν΄ μΈκ°(Authrization)λ μ 보μ μ κ·Ό νμ©. 2. ν ν° μΈμ¦ λ°©μ ν ν° μΈμ¦ λ°©μμ μ¬μ©μκ° μΈμ¦μ μννλ©΄ μλ²μμλ ν ν°μ μμ±ν λ€μ μ μ₯νμ§ μκ³ (stateless) ν ν°κ°μ μ¬μ©μμ λΈλΌμ°μ μκ² μλ΅ν¨. ν ν°κ°μ μ¬μ©μκ° μΈκ°λ μ¬μ©μλ§ μ¬μ©ν μ μλ μλΉμ€λ₯Ό μμ²ν λ ν¨κ» 보λ΄κ² λκ³ , μλ²μμ μ΄ ν ν°μ μλ―Έ μλ ..
2023.01.01 -
μ νμ μ νλ‘μ νΈ Style transfer = μ λ‘λν μ¬μ§μ μ νμ²λΌ λ³νν΄μ€λ€. μ¬μ© λ°©λ² git μ°Έκ³ : https://github.com/crowsonkb/style-transfer-pytorch GitHub - crowsonkb/style-transfer-pytorch: Neural style transfer in PyTorch. Neural style transfer in PyTorch. Contribute to crowsonkb/style-transfer-pytorch development by creating an account on GitHub. github.com κ°μνκ²½ μ€μ ν [ pip install -e . ] μ€μΉ style_transfer_pytorch.egg-info κ²½λ‘..
TIL_220623_λ₯λ¬λμ νμ μ νλ‘μ νΈ Style transfer = μ λ‘λν μ¬μ§μ μ νμ²λΌ λ³νν΄μ€λ€. μ¬μ© λ°©λ² git μ°Έκ³ : https://github.com/crowsonkb/style-transfer-pytorch GitHub - crowsonkb/style-transfer-pytorch: Neural style transfer in PyTorch. Neural style transfer in PyTorch. Contribute to crowsonkb/style-transfer-pytorch development by creating an account on GitHub. github.com κ°μνκ²½ μ€μ ν [ pip install -e . ] μ€μΉ style_transfer_pytorch.egg-info κ²½λ‘..
2023.01.01 -
DRF μ¬νκ³Όμ 2λ²μ§Έ κ³Όμ .. μ.. wa.. λͺ¨λΈλ§λΆν° μλ¦¬μΌ μ¬μ©λ²κ³Ό μ리μΌμ μ¬μ©νκΈ° μν views.py λ€λ£¨λ λ°©λ²κΉμ§.. νκΈ°μ μ΄λ©΄μ κ°νΈνμ§λ§ μμ§κΉμ§λ μ΅μνμ§ λͺ»ν κ·Έκ².. DRF λ λ체 λμΌ... γ 5μΌμ°¨ 1. productλΌλ μ±μ μλ‘ μμ±ν΄μ£ΌμΈμ - μμ±νλ©΄ settings.py λ μΆκ° python manage.py startapp product 2. product μ±μμ κ° ν¬ν¨λ product ν μ΄λΈμ μμ±ν΄μ£ΌμΈμ class Product(models.Model): user = models.ForeignKey('user.User', verbose_name="μμ±μ", on_delete=models.CASCADE) title = models.CharField(verbose..
TIL_220621_DRF κ°μDRF μ¬νκ³Όμ 2λ²μ§Έ κ³Όμ .. μ.. wa.. λͺ¨λΈλ§λΆν° μλ¦¬μΌ μ¬μ©λ²κ³Ό μ리μΌμ μ¬μ©νκΈ° μν views.py λ€λ£¨λ λ°©λ²κΉμ§.. νκΈ°μ μ΄λ©΄μ κ°νΈνμ§λ§ μμ§κΉμ§λ μ΅μνμ§ λͺ»ν κ·Έκ².. DRF λ λ체 λμΌ... γ 5μΌμ°¨ 1. productλΌλ μ±μ μλ‘ μμ±ν΄μ£ΌμΈμ - μμ±νλ©΄ settings.py λ μΆκ° python manage.py startapp product 2. product μ±μμ κ° ν¬ν¨λ product ν μ΄λΈμ μμ±ν΄μ£ΌμΈμ class Product(models.Model): user = models.ForeignKey('user.User', verbose_name="μμ±μ", on_delete=models.CASCADE) title = models.CharField(verbose..
2023.01.01 -
μ΄λ²μλ serializer λ₯Ό μμ©νλ μ¬ν κ³Όμ μ λ°μλ€. - permissions.py λ‘ κ΄λ¦¬μ λ° μ¬μ©μμ κΆνμ λΆμ¬νκ³ - μν©μ λ°λ₯Έ 쑰건μ μ μν΄μ μ‘°ν λ° μμ κΆνμ λΆλ¦¬ν μ μμ. - ex) 7μΌμ΄ μ§λμ§ μμ μ¬μ©μλ κ²μκΈ μμ± λΆκ° λ± λ¨ μκ°μ λ무λ λ§μ μ 보λμ μ΅λνλ €λ λκ° μ₯κ° λκΈ° μμνλ€.. κ³μ μ£Όμ νλ €λ λ°μ΄ν°λ₯Ό λλ§μ λ°©λ²μΌλ‘ μ‘°κΈμ©.. μ‘°κΈμ© μννκ³ μ νλ€.. λΆλ 체νμ§ λ§κ³ , μ ν‘μν μ μκΈ°λ₯Ό... μλ¬ λ ΈνΈ λλΆλΆ μ€νλ‘ μΈν μλ¬.. λ―ΈμΉκ²λ€.. 4μΌμ°¨ κ³Όμ μ¬ν 1. admin νμ΄μ§μ user adminμ λ±λ‘νκ³ , userprofile ν μ΄λΈμ user admin νμ΄μ§μμ κ°μ΄ λ³΄κ³ μ€μ ν μ μλλ‘ ν΄μ£ΌμΈμ class UserAdm..
TIL_220620_DRF κ°μμ΄λ²μλ serializer λ₯Ό μμ©νλ μ¬ν κ³Όμ μ λ°μλ€. - permissions.py λ‘ κ΄λ¦¬μ λ° μ¬μ©μμ κΆνμ λΆμ¬νκ³ - μν©μ λ°λ₯Έ 쑰건μ μ μν΄μ μ‘°ν λ° μμ κΆνμ λΆλ¦¬ν μ μμ. - ex) 7μΌμ΄ μ§λμ§ μμ μ¬μ©μλ κ²μκΈ μμ± λΆκ° λ± λ¨ μκ°μ λ무λ λ§μ μ 보λμ μ΅λνλ €λ λκ° μ₯κ° λκΈ° μμνλ€.. κ³μ μ£Όμ νλ €λ λ°μ΄ν°λ₯Ό λλ§μ λ°©λ²μΌλ‘ μ‘°κΈμ©.. μ‘°κΈμ© μννκ³ μ νλ€.. λΆλ 체νμ§ λ§κ³ , μ ν‘μν μ μκΈ°λ₯Ό... μλ¬ λ ΈνΈ λλΆλΆ μ€νλ‘ μΈν μλ¬.. λ―ΈμΉκ²λ€.. 4μΌμ°¨ κ³Όμ μ¬ν 1. admin νμ΄μ§μ user adminμ λ±λ‘νκ³ , userprofile ν μ΄λΈμ user admin νμ΄μ§μμ κ°μ΄ λ³΄κ³ μ€μ ν μ μλλ‘ ν΄μ£ΌμΈμ class UserAdm..
2023.01.01 -
DRF μ κ½ Serializer μ λν΄μ λ°°μ°κ³ , Serializer λ‘ κ³Όμ λ₯Ό λ°μλ€. μ΄λμ λ μ΄ν΄λ₯Ό νλ€κ³ μκ°νλλ°, μκ°λ³΄λ€ μμκ³Ό λ€λ₯Έ Serializer μΆκ° λΆλΆμ λν΄μ μ λλ‘ μ΄ν΄νμ§ λͺ»ν λΆλΆμ΄ μμ΄ λλ΄ κ³Όμ λ₯Ό μμ±ν μ μμλ€.. κ·Έλλ ν΄μ€ κ°μλ₯Ό ν΅ν΄ λ§μ§λ§κΉμ§ μ°λ¨Ήν΄λ³΄μλ€. μλ¬ λ ΈνΈ μ¬μ€ μλ¬λΌκΈ° 보λ€λ λ΄κ° μ€μν λ΄μ©μ΄μ§λ§, λ λ² μ€μνμ§ μκΈ° μν΄ μ μ΄λλ€. μμΈ : 1) νμμ΄ν μ μμ μλ‘μ΄ νλ‘μ νΈ μμ±νκ³ μμ. 2) νμμ΄ν 2λ² λ¬Έμ μμ USERNAME_FIELD λ₯Ό λ³κ²½ν΄λ κ³μ λ°λμ§ μλ κΈ°μ΄ν νμ 3) μλ¬ μ½λλ λ¨μ§ μκ³ κ³μ μ¬μ©μ μ΄λ¦λΆν° μμ±νλΌκ³ ν¨. ν΄κ²° : AUTH_USER_MODEL = 'user.User' κ³μ λͺ¨λΈμ μμ μ΄..
TIL_220617_DRF κ°μDRF μ κ½ Serializer μ λν΄μ λ°°μ°κ³ , Serializer λ‘ κ³Όμ λ₯Ό λ°μλ€. μ΄λμ λ μ΄ν΄λ₯Ό νλ€κ³ μκ°νλλ°, μκ°λ³΄λ€ μμκ³Ό λ€λ₯Έ Serializer μΆκ° λΆλΆμ λν΄μ μ λλ‘ μ΄ν΄νμ§ λͺ»ν λΆλΆμ΄ μμ΄ λλ΄ κ³Όμ λ₯Ό μμ±ν μ μμλ€.. κ·Έλλ ν΄μ€ κ°μλ₯Ό ν΅ν΄ λ§μ§λ§κΉμ§ μ°λ¨Ήν΄λ³΄μλ€. μλ¬ λ ΈνΈ μ¬μ€ μλ¬λΌκΈ° 보λ€λ λ΄κ° μ€μν λ΄μ©μ΄μ§λ§, λ λ² μ€μνμ§ μκΈ° μν΄ μ μ΄λλ€. μμΈ : 1) νμμ΄ν μ μμ μλ‘μ΄ νλ‘μ νΈ μμ±νκ³ μμ. 2) νμμ΄ν 2λ² λ¬Έμ μμ USERNAME_FIELD λ₯Ό λ³κ²½ν΄λ κ³μ λ°λμ§ μλ κΈ°μ΄ν νμ 3) μλ¬ μ½λλ λ¨μ§ μκ³ κ³μ μ¬μ©μ μ΄λ¦λΆν° μμ±νλΌκ³ ν¨. ν΄κ²° : AUTH_USER_MODEL = 'user.User' κ³μ λͺ¨λΈμ μμ μ΄..
2023.01.01 -
DRF κ°μ 본격μ μΌλ‘ λ£κ² λ 3μΌμ°¨ κ³Όμ μ λ΄μ©.. μ΄μ°.. μ μ μ λͺ»μ°¨λ¦°λ€. μκ°λ³΄λ€ μ¬μ€νκ³ λ₯ν μ₯κ³ μ μΈκ³ κ·Έλ¦¬κ³ λ무 νΈλ¦¬ν κΈ°λ₯μλ€ μ΄λ»κ²λ νμ©νκΈ° μν λ°λ²λ₯.. λ΄κ° μ΄ λͺ¨λ κΈ°λ₯λ€μ μ λ€λ£° μ μμκΉ.. λ μμ νμ΄ν .. μλ¬ λ ΈνΈ μ¬μ€ μλ¬λΌκΈ° 보λ€λ λ΄κ° μ€μν λ΄μ©μ΄μ§λ§, λ λ² μ€μνμ§ μκΈ° μν΄ μ μ΄λλ€. μμΈ : TypeError: Cannot read properties of undefined (reading 'value') λ΄μ© : ν¬μ€νΈλ§¨ μ λ°μνλ μλ¬ ν΄κ²° : path('login/', views."UserAPIView".as_view()), λ΄μ© : urls.py μ κ²½λ‘μ μλ ν΄λμ€ λͺ μ€νλ‘ μΈν μλ¬ 3μΌμ°¨ κ³Όμ 1. Django νλ‘μ νΈλ₯Ό μμ±νκ³ ..
TIL_220616_DRF κ°μDRF κ°μ 본격μ μΌλ‘ λ£κ² λ 3μΌμ°¨ κ³Όμ μ λ΄μ©.. μ΄μ°.. μ μ μ λͺ»μ°¨λ¦°λ€. μκ°λ³΄λ€ μ¬μ€νκ³ λ₯ν μ₯κ³ μ μΈκ³ κ·Έλ¦¬κ³ λ무 νΈλ¦¬ν κΈ°λ₯μλ€ μ΄λ»κ²λ νμ©νκΈ° μν λ°λ²λ₯.. λ΄κ° μ΄ λͺ¨λ κΈ°λ₯λ€μ μ λ€λ£° μ μμκΉ.. λ μμ νμ΄ν .. μλ¬ λ ΈνΈ μ¬μ€ μλ¬λΌκΈ° 보λ€λ λ΄κ° μ€μν λ΄μ©μ΄μ§λ§, λ λ² μ€μνμ§ μκΈ° μν΄ μ μ΄λλ€. μμΈ : TypeError: Cannot read properties of undefined (reading 'value') λ΄μ© : ν¬μ€νΈλ§¨ μ λ°μνλ μλ¬ ν΄κ²° : path('login/', views."UserAPIView".as_view()), λ΄μ© : urls.py μ κ²½λ‘μ μλ ν΄λμ€ λͺ μ€νλ‘ μΈν μλ¬ 3μΌμ°¨ κ³Όμ 1. Django νλ‘μ νΈλ₯Ό μμ±νκ³ ..
2023.01.01 -
django 1~2μΌμ°¨ κ³Όμ (1) args, kwargsλ₯Ό μ¬μ©νλ μμ μ½λ μ§λ³΄κΈ° *args : κ°λ³ μΈμ (ν¨μμ μΈμλ₯Ό λͺ κ° λ°μμ§ λͺ¨λ₯΄λ κ²½μ°) - μ΄κΈ° λ‘μ§(μ§μ μ§λ³Έ κ²) def test_1(*args): print(args) return args sample_list = [1, 2, 3, 4, 5] number = test_1(*sample_list) for i in number: print(i + 1) - κ°μ λ‘μ§(ꡬκΈλ§) def test_1(*args): result = 0 for i in args: result += i # result = 1 # result = 1 + 2 # result = 1 + 2 + 3 # result = 1 + 2 + 3 + 33 print(result)..
TIL_220615_DRF κ°μdjango 1~2μΌμ°¨ κ³Όμ (1) args, kwargsλ₯Ό μ¬μ©νλ μμ μ½λ μ§λ³΄κΈ° *args : κ°λ³ μΈμ (ν¨μμ μΈμλ₯Ό λͺ κ° λ°μμ§ λͺ¨λ₯΄λ κ²½μ°) - μ΄κΈ° λ‘μ§(μ§μ μ§λ³Έ κ²) def test_1(*args): print(args) return args sample_list = [1, 2, 3, 4, 5] number = test_1(*sample_list) for i in number: print(i + 1) - κ°μ λ‘μ§(ꡬκΈλ§) def test_1(*args): result = 0 for i in args: result += i # result = 1 # result = 1 + 2 # result = 1 + 2 + 3 # result = 1 + 2 + 3 + 33 print(result)..
2023.01.01 -
κΈΈλ©΄μλ 짧μλ 10μΌκ°μ django ν νλ‘μ νΈκ° λμ΄ λ¬λ€. λ§μ΄ μμ¬μ λ μ λ μμκ³ , μΆ©λΆν μλκ³Ό λ μμ μ€μ€λ‘ μ λ§ μ΄μ¬ν νλ? λΌλ μκ°μ΄ λλ μκ°μ΄μλ€. λ λλ¨ν μΊ νΌ μ¬λλ€μ μλμ νμΈνλ©΄μ λκΈ°λΆμ¬λ λ°μ§λ§, κ·Έλ§νΌμ΄λ λ°λΌκ°μ§ λͺ»νλ λ΄ μμ μκ² μ€λ§ν μΌμ΄ μ¬λ¬λ² μμλ€. κ·Έλλ.. κ·Έλλ§ λ€νμ΄λΌλ©΄ λλ ν¬κΈ°νμ§ μμκ³ , μ±μ·¨κ°μ μ»μκ³ , μ¬λ―Έλ₯Ό μ»μλ€. μ΄ λ€μμ λλ λ μ¬λ―Έμκ² μ¦κΈ°κ³ μλ λ μμ μ κΏκΎΈλ©° μ΄μ¬ν ν΄λ³΄κ³ μ νλ€. KPT νκ³ KEEP νμ μ‘°κΈ λ μμΈν μμ΄μ΄ νλ μ μμ±. (μμ μ½λ ν¬ν¨) νλ©΄ 곡μ λ₯Ό ν΅ν΄ μ¦μμμ μν©μ 곡μ νκ³ ν¨κ» νμΈ μ νλ‘μ νΈλ³΄λ€ ν₯μλ μμ€μ git μ¬μ© (λΆλ΄ μλ λ³ν©) μ κ·Ήμ μΈ νμ νμ©(νν°λμκ² κ°κΈ° μ ..
TIL_220614_ν νλ‘μ νΈ djangoκΈΈλ©΄μλ 짧μλ 10μΌκ°μ django ν νλ‘μ νΈκ° λμ΄ λ¬λ€. λ§μ΄ μμ¬μ λ μ λ μμκ³ , μΆ©λΆν μλκ³Ό λ μμ μ€μ€λ‘ μ λ§ μ΄μ¬ν νλ? λΌλ μκ°μ΄ λλ μκ°μ΄μλ€. λ λλ¨ν μΊ νΌ μ¬λλ€μ μλμ νμΈνλ©΄μ λκΈ°λΆμ¬λ λ°μ§λ§, κ·Έλ§νΌμ΄λ λ°λΌκ°μ§ λͺ»νλ λ΄ μμ μκ² μ€λ§ν μΌμ΄ μ¬λ¬λ² μμλ€. κ·Έλλ.. κ·Έλλ§ λ€νμ΄λΌλ©΄ λλ ν¬κΈ°νμ§ μμκ³ , μ±μ·¨κ°μ μ»μκ³ , μ¬λ―Έλ₯Ό μ»μλ€. μ΄ λ€μμ λλ λ μ¬λ―Έμκ² μ¦κΈ°κ³ μλ λ μμ μ κΏκΎΈλ©° μ΄μ¬ν ν΄λ³΄κ³ μ νλ€. KPT νκ³ KEEP νμ μ‘°κΈ λ μμΈν μμ΄μ΄ νλ μ μμ±. (μμ μ½λ ν¬ν¨) νλ©΄ 곡μ λ₯Ό ν΅ν΄ μ¦μμμ μν©μ 곡μ νκ³ ν¨κ» νμΈ μ νλ‘μ νΈλ³΄λ€ ν₯μλ μμ€μ git μ¬μ© (λΆλ΄ μλ λ³ν©) μ κ·Ήμ μΈ νμ νμ©(νν°λμκ² κ°κΈ° μ ..
2023.01.01