TIL - 0223(미완)

[summary]

  • 앨범사진 저장할때 확장자 지정해주는 방법
  • 앨범사진이 있을 경우, 삭제하고 업데이트

[부족한 부분]

  • decorator
  • template - built-in
  • form - built-in fields

질문

  1. BytesIO클래스에서 seek메소드는 어떤 일을 수행하나요?
    • seek 의 경우 바이트의 위치를 알려줌
    • File() 이 경우, 파일 바이너리 위치가 끝이어도 처음부터 읽어서 동작
  2. crawler.artist.py의 ArtistData
    1)일부 인스턴스 속성중 “_ (언더바)” 를 붙인 이유는 무엇인가요?
    • 외부에서 직접 접근을 하지 않아도 되기 때문에
      2) “@require_detail” 은 무엇이며, 어떤 작업을 수행하나요?
    • 클래스 처음엔 get_detail이 false고 만약 True 이면 동작하지 않음
    • decorator: 기존 함수에 다른 기능을 추가할 때
 def abc(self,arg):
 return argument

 decorated_function_abc = require_detail(abc)
 decorated_function_abc("adf")

session / token

  • 서버에서 session() 브라우저에서 cookie

FileField

  • 문자열로만 들어감
  • Storage.save() AWS같이 다른 곳에 저장할때 사용할 수 있음

유저 확장(혼자 공부할 땐 다 봐야함)

https://docs.djangoproject.com/en/2.0/topics/auth/customizing/

  • 다른 인증 방법을 사용할 때
  • 유저 확장은 기본 장고가 제공한 유저 유지하면서 확장

Extending the existing User model

  • 추가 정보의 경우 one-to-one 으로 연결

Substituting a custom User model

  • 기본 제공하는 가지고 대체하는 방법과 제공하는 것을 사용하지 않는 방법이 있다. 그러나 기본 제공하는 모델을 사용해서 대체하는 것을 추천
# 기존 장고가 제공하는 앱을 이용해서 하는 것을 추천
AUTH_USER_MODEL = 'myapp.MyUser'

Using a custom user model when starting a project

  • abstractuser(abstractbseuser) : 그래서 이걸 사용하는 것을 추천
  • abstractbseuser : 뼈대만 있는 것 그래서 처음부터 만들어야 함. / 어려운 부분 패스워드 해싱 부분
# 확장 가능성을 생각해 두고 ~~!!
#  나중에 커스터마이징 하는 것이 편리함
from django.contrib.auth.models import AbstractUser

class User(AbstractUser):
    pass

Referencing the User model

django.conf import settings setting 사용시, 메모리에 아직 올라가기 전에 사용해서 문제가 있는 경우가 있기때문에, conf에 있는 settings를 사용하자.

admin 유저 추가 오류

  • admin에서 새로운 유저를 추가하면 비밀번호때문에 오류가 생긴 것임 > 패스워드를 해싱하지 않아서..

# members/admin.py
# 패스워드 해싱되서 바뀜
admin.site.register(User, UserAdmin)

Extending Django’s default User

  • 추천하는 방법
  • 이메일 로그인 방법중에, username에 이메일 계정 넣어도 됨 혹은 username/ email 필드 두개를 만드는 것도 좋음

password

https://docs.djangoproject.com/en/2.0/topics/auth/passwords/

How Django stores passwords

  • <algorithm>$<iterations>$<salt>$<hash> salt 임의의 값

  • password 의 조건도 커스터마이징 가능

cleaned data

validation

https://docs.djangoproject.com/en/2.0/ref/forms/validation/