보통 웹 사이트에 가입을 하려 할 때, 보통은 비밀번호가 숫자, 영어, 특수문자 포함 8자 이상으로 제한되어 있는 경우가 많다.
이번 프로젝트를 하며 이 코드가 재미있었어서 한번 올려본다.
from django.shortcuts import render, redirect
import re
if password != password2:
return render(request, 'signup.html', {'error': '패스워드를 확인 해 주세요!'})
elif (len(password) < 8 ):
return render(request, 'signup.html', {'error': '패스워드는 8자 이상이어야 합니다!'})
elif re.search('[a-zA-z]+', password)is None:
return render(request, 'signup.html', {'error': '비밀번호는 최소 1개 이상의 영문이 포함되어야 합니다!'})
elif re.search('[0-9]+', password) is None:
return render(request, 'signup.html', {'error': '비밀번호에는 최소 1개 이상의 숫자가 포함되어야 합니다!'})
elif re.search('[`~!@#$%^&*(),<.>/?]+', password) is None:
return render(request, 'signup.html', {'error': '비밀번호에는 최소 1개 이상의 특수문자가 포함되어야 합니다!'})
else:
if email == '' or password == '':
return render(request, 'signup.html', {'error': '이메일과 패스워드를 입력해주세요.'})
회원가입 view 중에서 유효성검사 코드를 제외하고는 다 생략했다.
일단 파이썬의 re 패키지를 설치해 준다.
re란?
https://brownbears.tistory.com/506
[Python] re 모듈 사용법
regex는 정규 표현식으로 흔히 알려져 있습니다. 파이썬에서 정규 표현식을 사용할 때, 내장 모듈인 re를 사용하고 있습니다. re 모듈에서 제공해주는 함수들을 보면 match(), fullmatch(), findall(), search(
brownbears.tistory.com
이렇게 if 문으로 숫자, 영어, 특수문자 포함 8자 이상 의 조건을 하나하나 조건문으로 걸어주면 된다.
하지만 이렇게하면 코드가 난잡해지고 보기 불편할 수도 있으니 따로 파일을 작성하고 import 해와서 사용하는것이 더 좋은것 같다.
'WIL' 카테고리의 다른 글
10주차 WIL (0) | 2022.11.07 |
---|---|
9주차 WIL (RESTful API란?) (0) | 2022.10.30 |
7주차 WIL (0) | 2022.10.17 |
6주차 WIL (장고 CRUD) (0) | 2022.10.10 |
5주차 WIL (0) | 2022.10.03 |