2020. 11. 9. 12:33ㆍCoding/Python-Fastcampus
04. 로그인 - 05. MTV의 T 확장하기 - 상속
비슷한 형식의 코드를 하나로 모아서 상속받아 사용하는 방법.
- 같은 내용을 계속 반복해서 복붙을 하는게 아니고, 한곳에 몰아놓고 가져다 쓰는 방식이라 유지보수에 특히 좋음.
사용방법.
공통이 되는 부분을 base.html이라고 하나 만들어준다.
container까지 공통으로 사용하고 그 안의 내용을 페이지 별로 만드는 방식을 사용할것이기 때문에
container안에 {% block contents %}와 {% endblock %}을 만들어서 추가할 컨텐츠의 시작과 끝을 지정한다.
사용할 html코드로 돌아가서 중복 부분을 지우고,
최상단에 {% extends 'base.html' %}을 넣어 base.html을 불러온다.
중복을 지우고 남은 컨텐츠 부분의 위 아래에 {% block contents %}와 {% endblock %}을 만들어서 컨텐츠를 넣어준다.
(사용법은 springboot할때 써본, mustache랑 비슷한듯?)
04. 로그인 - 06. Form 활용하기 - 1
html에 태그를 이용해서 form을 만드는게 아니고, 파이썬 코드 부에서 작성한 코드를 기반으로 django가 form을 만들어주는 기능이있다.
forms.py생성
views.py의 login부분 수정
login.html의 태그 삭제 후 {{form}}추가
django가 자동으로 생성한 form이라 볼품은 없다.
다만 두번째 이미지와 같은 기능을 자동으로 제공.
{{form.as_p}} : 각 field를 p태그로 감싸줌.
기존과 비슷하게 '모양' 만들기.
html기본 지원 기능이 아니라 자동완성이 안뜬다.
자동완성 지원해주는 플러그인이 있겠지...?
헷깔려서 쓸때마다 찾아볼듯...?
추가.
화면의 text를 바꿔주려면, label값을 넣어주면된다.
password를 가려주려면 widget에 값을 넣어주면된다.
04. 로그인 - 07. Form 활용하기 - 2
페이지 이동 구현.
POST로 입렵을 받은 경우와 아닌경우를 나누고,
값이 정상입력했을때를 판단하는 is_valid()를 사용해서, 모든 값 입력시 index페이지로 보낸다.
필수값 입력 메시지(1).
아래쪽의
{% if field.errors %} 부터 {% endif%} 까지 참고.
views에서 form을 보낼때, error정보를 같이 보내기 때문에 error가 있는 경우에 표시된다.
필수값 입력 메시지(1).
각 필드에 대한 에러 메시지는 error_message={'require':'에러문구'} 형식으로 json처럼 추가해주면된다.
def clean(self) : 이 함수는 잘 모르겠지만, django가 지원해주는 기능이라고 본다.
(뭘 clean해준다고 clean함수인지 잘 모르겠음.)
username과 password를 통해 fcuser객체를 가져오고 check_password()함수를 이용해 확인 후 맞지 않으면 error를 돌려준다.
session.
forms.py 하단의 check_password()를 통과하면 로그인이 정상 작동한것이므로, self.user_id에 fcuser의 id를 담아준다.
views.py에서 form으로 user_id를 받아서 session에 넣어주면 끝.
04. 자료형 - 03. 문자열 및 연산자(1)
문자열, 문자열연산, 슬라이싱.
str1 = "I am Boy."
str2 = 'NiceMan'
str3 = ''
print(len(str1), len(str2), len(str3))
>9 7 0
escape문자.
\(역슬래쉬)
RawString.
raw_s1 = r'C:\Programs\Test\bin'
>C:\Programs\Test\bin
(escape가 작동안하고 적은 그대로 출력이된다.)
멀티라인
멀티라인을 이용할때는 \역슬래시를 잘 이용해주면, 보기 좋게 정렬이 가능하다.
문자열 연산.
str = "NiceMan"
print('a' in str)
>True
print('f' in str)
>False
print('z' not in str)
>True
올인원 패키지 : 파이썬 웹 개발👉https://bit.ly/33a7nvc
'Coding > Python-Fastcampus' 카테고리의 다른 글
[패스트캠퍼스 수강 후기] 파이썬 인강 100% 환급 챌린지 10 회차 미션 (0) | 2020.11.11 |
---|---|
[패스트캠퍼스 수강 후기] 파이썬 인강 100% 환급 챌린지 9 회차 미션 (0) | 2020.11.10 |
[패스트캠퍼스 수강 후기] 파이썬 인강 100% 환급 챌린지 7 회차 미션 (0) | 2020.11.08 |
[패스트캠퍼스 수강 후기] 파이썬 인강 100% 환급 챌린지 6 회차 미션 (0) | 2020.11.07 |
[패스트캠퍼스 수강 후기] 파이썬 인강 100% 환급 챌린지 5 회차 미션 (0) | 2020.11.06 |