λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
βœ’οΈ Python Programming/Frameworks

< django - 17 >

by A Lim Han 2022. 8. 7.

17. νšŒμ›κ°€μž…κ³Ό νšŒμ›κ°€μž… 링크

 

 

# νšŒμ›κ°€μž… 링크

: νšŒμ›κ°€μž…μ— ν•„μš”ν•œ 링크λ₯Ό projects/mysite/templates/navbar.html ν…œν”Œλ¦Ώμ— μ•„λž˜μ²˜λŸΌ μΆ”κ°€

Line 22 ~ 26 μΆ”κ°€

+ 둜그인과 λ‘œκ·Έμ•„μ›ƒμ˜ μš°μΈ‘μ— νšŒμ›κ°€μž… 링크 μΆ”κ°€

+ νšŒμ›κ°€μž…μ€ λ‘œκ·Έμ•„μ›ƒ μƒνƒœμΌ λ•Œμ— ν•œν•΄ 보이도둝 섀정함

 

 

 

 

# urls.py

: navbar.html ν…œν”Œλ¦Ώμ— {% url 'common:signup' %} νƒœκ·Έλ₯Ό μΆ”κ°€ν–ˆμœΌλ‹ˆ 여기에 λŒ€μ‘ν•˜λŠ” URL 맀핑 κ·œμΉ™μ„ μΆ”κ°€ν•΄μ•Ό 함

 

- projects\mysite\common\urls.py νŒŒμΌμ— μ•„λž˜μ²˜λŸΌ νšŒμ›κ°€μž…μ„ μœ„ν•œ 맀핑 κ·œμΉ™μ„ μΆ”κ°€  -->  둜그인 ν™”λ©΄μ—μ„œ νšŒμ›κ°€μž… 링크λ₯Ό λˆ„λ₯΄λ©΄ views.signup ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜κ²Œ 함

Line 3, 10 μΆ”κ°€

 

 

 

 

# forms.py

- 계정을 생성할 λ•Œ μ‚¬μš©ν•  UserForm을 projects\mysite\common\forms.py νŒŒμΌμ— μ•„λž˜μ²˜λŸΌ μž‘μ„±

+ django.contrib.auth.forms λͺ¨λ“ˆμ˜ UserCreationForm 클래슀λ₯Ό μƒμ†ν•˜μ—¬ UserForm λ§Œλ“¦

+ Line 11의 UserCreationForm 클래슀 속성

속성 μ„€λͺ…
username μ‚¬μš©μžλͺ…
password1 λΉ„λ°€λ²ˆν˜Έ 1
password2 λΉ„λ°€λ²ˆν˜Έ 2 (λΉ„λ°€λ²ˆν˜Έ 1의 ν™•μΈμš©)

+ μƒμ†ν•œ UserCreationForm 의 is_valid ν•¨μˆ˜λ₯Ό 톡해

1. 폼에 μ‚¬μš©μžλͺ…, λΉ„λ°€λ²ˆν˜Έ 1, 2κ°€ λͺ¨λ‘ μž…λ ₯λ˜μ—ˆλŠ”μ§€,

2. λΉ„λ°€λ²ˆν˜Έ 1κ³Ό 2κ°€ 같은지,

3. μž‘μ„±λœ λΉ„λ°€λ²ˆν˜Έ 값이 λΉ„λ°€λ²ˆν˜Έ 생성 κ·œμΉ™μ— λ§žλŠ”μ§€

등을 검사

 

+ Line 7에 email 속성 μΆ”κ°€ 

 

 

 

 

# views.py 

- projects\mysite\common\views.py νŒŒμΌμ— νšŒμ›κ°€μž…μ„ μœ„ν•œ signup ν•¨μˆ˜λ₯Ό μ•„λž˜μ™€ 같이 μ •μ˜

+ Line 6의 signup ν•¨μˆ˜

: POST μš”μ²­μΈ 경우  -->  화면에 μž…λ ₯ν•œ λ°μ΄ν„°λ‘œ μ‚¬μš©μž 생성

: GET μš”μ²­μΈ 경우  -->  νšŒμ›κ°€μž… ν™”λ©΄ 좜λ ₯

 

+ Line 11,12의 form.cleaned_data.get ν•¨μˆ˜

: 인증할 λ•Œ 쓰일 μ‚¬μš©μžλͺ…, λΉ„λ°€λ²ˆν˜Έλ₯Ό μ–»κΈ° μœ„ν•΄ μ‚¬μš© + 폼의 μž…λ ₯값을 κ°œλ³„μ μœΌλ‘œ μ–»κ³  싢을 λ•Œ μ“°μž„

 

+ Line 1, 13, 14의 authenticate, login ν•¨μˆ˜

: django.contrib.auth λͺ¨λ“ˆμ˜ ν•¨μˆ˜μ΄μž μ‚¬μš©μž 인증과 λ‘œκ·ΈμΈμ„ λ‹΄λ‹Ήν•˜λŠ” ν•¨μˆ˜λ‘œ, μ‹ κ·œ μ‚¬μš©μž 생성 ν›„ μžλ™μœΌλ‘œ 둜그인이 될 수 있게 ν•˜κΈ° μœ„ν•΄ μ‚¬μš©

 

+ Line 1

django.contrib.auth.authenticate  -->  μ‚¬μš©μž 인증 λ‹΄λ‹Ή + μ‚¬μš©μžλͺ…κ³Ό λΉ„λ°€λ²ˆν˜Έκ°€ μ •ν™•ν•œμ§€ 확인

django.contrib.auth.login  -->  둜그인 λ‹΄λ‹Ή + μ‚¬μš©μž μ„Έμ…˜ 생성

 

 

 

 

# signup.html

- νšŒμ›κ°€μž… 화면을 ꡬ성할 projects\mysite\templates\common\signup.html νŒŒμΌμ„ μ•„λž˜μ™€ 같이 μž‘μ„±

+ << Line 6 >>

form νƒœκ·Έ μ•„λž˜ 였λ₯˜ ν‘œμ‹œλ₯Ό μœ„ν•œ  form_errors.html ν…œν”Œλ¦Ώμ„ include

 

+ UserForm 의 속성듀(μ‚¬μš©μžλͺ…, λΉ„λ°€λ²ˆν˜Έ1, 2, 이메일)에 ν•΄λ‹Ήλ˜λŠ” ν•„λ“œλ“€μ„ form ν•­λͺ©μœΌλ‘œ μΆ”κ°€

 

 

 

 

# νšŒμ›κ°€μž… ν…ŒμŠ€νŠΈ

1. 둜컬 μ„œλ²„λ₯Ό κ΅¬λ™ν•˜κ³  http://localhost:8000/ νŽ˜μ΄μ§€ 뢈러였기  -->  νšŒμ›κ°€μž… λ²„νŠΌ 클릭

 

νšŒμ›κ°€μž… λ²„νŠΌ 클릭 μ‹œ λ‚˜νƒ€λ‚˜λŠ” μ°½

 

 

 

2. λΉ„λ°€λ²ˆν˜Έ 1, 2 의 값을 λ‹€λ₯΄κ²Œ μž…λ ₯  -->  μ•„λž˜μ™€ 같은 κ²½κ³  문ꡬ 좜λ ₯

 

 

 

3. μ˜¬λ°”λ₯Έ μž…λ ₯값을 μž…λ ₯ν•˜μ—¬ 계정 생성  -->  μžλ™μœΌλ‘œ λ‘œκ·ΈμΈλ˜μ–΄μžˆμŒμ„ 확인가λŠ₯

 

 

 

4. 계정을 μƒμ„±ν•˜κ³  μ–΄λ“œλ―Ό νŽ˜μ΄μ§€ http://localhost:8000/admin/ 으둜 접속  -->  ν˜„μž¬ 슈퍼 μœ μ €κ°€ μ•„λ‹Œ λ‹€λ₯Έ κ³„μ •μœΌλ‘œ 둜그인된 μƒνƒœ  -->  μ•„λž˜μ²˜λŸΌ κ²½κ³  λ©”μ‹œμ§€ 좜λ ₯

μ–΄λ“œλ―Ό νŽ˜μ΄μ§€λŠ” 슈퍼 μœ μ €λ‘œ 접속해야 함

 

 

 

5. μ‚¬μš©μž 이름과 λΉ„λ°€λ²ˆν˜Έμ— 슈퍼 μœ μ €μ˜ 정보λ₯Ό μž…λ ₯ν•˜κ³  둜그인  -->  ν™ˆμ˜ 인증 및 κΆŒν•œ νŽ˜μ΄μ§€μ—μ„œ μƒˆλ‘œ μƒμ„±λœ Baketimer 계정 확인 κ°€λŠ₯

 

 

'βœ’οΈ Python Programming > Frameworks' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

< django - 19 >  (0) 2022.08.15
< django - 18 >  (0) 2022.08.07
< django - 16 >  (0) 2022.08.06
< django - 15 >  (0) 2022.08.06
< django - 14 >  (0) 2022.08.05