select * from asd;
CREATE TABLE Person(
name varchar(50)
)
SELECT DISTINCT FROM PERSON;
> distinct 중복제거
> Person.objects.values('name', 'age').distinct()
SELECT * FROM Person LIMIT 10;
> Person.objects.all()[:10] 0~10
>> Person.objects.all()[5:10] 6~10
Person.objects.filter(age__gt=20).value()
> gt : greater than / lt : less than
> gte : greater than or equal / lte : less than or equal
Person.objects.filter(name__icontains='장고').value()
> istartswith ( i > 대소문구분 안하겠다)
> iendswith
Persion.objects.filter(id__in=[1,2,6,9])
> id 가 1, 2, 6 ,9 만 불러옴
> 사용자 특정지어서 불러오기 가능
Q객체
Person.objects.filter(gender='male', age__gt=25)
Person.objects.filter(Q(gender='male') ㅣ Q(age__gt=25))
> or
Person.objects.exclude(gender='male').value()
> gender=male 빼고
Person.objects.order_by('?')[:5].value()
>랜덤으로 5개 뽑기
F객체
디비랑 싱크 맞춰줌.
그냥 하면 싱크 안맞을 수도 있는데, F객체 쓰면 디비 싱크 맞음.
target_person.age=F('age')+10
Person.objects.filter(age__gte=25).delete()
>삭제가능
> 디비 삭제하는 건 별로 선호되지 않기 때문에
> 유저관리할 때 status필드를 만들어서 1(정상) 2(정지) 3(임의탈퇴) 등
> 해서 조건별로 관리하기도 함
<커스터마이징 장고 회원가입&로그인>
1. 회원가입(email, password, usrname, 생년월일로 회원가입&해싱되어 있어야 함)
- email 형태 확인 메세지
- password 8자 이상, 오류 메세지
- username 2자 이상, 오류 메세지
2. 로그인(email, password로 로그인)
로그인 되면 "가입 완료!"메세지
로그인 안되면 에러<순서>
1. 기본 설치
2. settings.py 수정
3. urls.py 작성
4. models.py 작성 및 수정
5. admin.py 작성 및 수정
6. serializers.py 작성
7. views.py 작성