티스토리 뷰
<Complete List>
1. 데이터베이스 및 UI 설계하기
- 인스타그램 UI 구성
- 데이터베이스 테이블 설계 및 구현
2. 앱 만들기
- instagram, accounts 앱 만들기
- views.py 분리하기
3. 회원가입 페이지
- url
- view
- 비밀번호 암호화 함수 구현 - 해시 함수
- template
4. 로그인 페이지
- url
- view
- 세션에 사용자 ID 저장하기
- template
<To Do List>
- Django 인증 시스템을 활용하여 회원가입, 로그인 뷰 개발
- urls.py에서 기존 매칭된 뷰들을 새로 구현한 뷰들로 변경
5. 로그아웃 뷰
- url
- view
urls.py 변경
- urls.py에서 기존 매칭된 뷰들을 새로 구현한 뷰들로 변경
urlpatterns = [
re_path(r'^register/$', RegisterAccountsView, name='pn_reg_accounts'),
re_path(r'^login/$', LoginView, name='pn_login'),
]
회원가입 - RegisterAccountsView
- Django 인증 시스템을 활용하여 회원가입 뷰 개발
def RegisterAccountsView(request):
if request.method == 'GET':
renderPage = 'reg_accounts.html'
return render(request, renderPage)
else:
email = request.POST.get('email')
name = request.POST.get('name')
user_id = request.POST.get('user_id')
user_pw = request.POST.get('user_pw')
try:
user = User.objects.get(username=user_id)
messages.error(request, '이미 존재하는 아이디입니다. 다른 아이디를 사용해주세요.')
return redirect('accounts:pn_reg_accounts')
except ObjectDoesNotExist:
user = User.objects.create_user(username=user_id, password=user_pw, email=email, first_name=name)
messages.success(request, '회원가입이 되었습니다. 로그인을 해주세요.')
return redirect('accounts:pn_login')
-
200220 수정:
존재하지 않는 데이터일 때
accounts.models.User.DoesNotExist: User matching query does not exist
에러 발생따라서, 이에 대한
ObjectDoesNostExist
예외 처리를 해줘야 한다.
로그인 - LoginView
- Django 인증 시스템을 활용하여 로그인 뷰 개발
def LoginView(request):
if request.method == 'GET':
render_page = "login.html"
return render(request, render_page)
else:
user_id = request.POST.get('user_id')
user_pw = request.POST.get('user_pw')
# username과 password로 자격 증명
user = authenticate(request, username=user_id, password=user_pw)
if user is not None:
login(request, user=user)
return redirect('pystagram:pn_main')
else:
messages.error(request, '아이디 혹은 비밀번호가 틀렸습니다. 다시 입력해주세요.')
return redirect('accounts:pn_login')
5. 로그아웃 뷰
5.1 url
urlpatterns = [
re_path(r'^register/$', RegisterAccountsView, name='pn_reg_accounts'),
re_path(r'^login/$', LoginView, name='pn_login'),
re_path(r'^logout/$', LogoutView, name='pn_logout'),
]
5.2 LogoutView
def LogoutView(request):
logout(request)
return redirect('accounts:pn_login')
'Django > ▶-----Pystagram' 카테고리의 다른 글
[Django App 3-7] 인스타그램 클론 코딩_포스트 업로드 페이지&회원 정보 수정 페이지 (0) | 2020.02.27 |
---|---|
[Django App 3-6] 인스타그램 클론 코딩_메인 페이지&포스트 리스트 페이지&포스트 상세 페이지 (0) | 2020.02.17 |
[Django App 3-4] 인스타그램 클론 코딩_로그인 페이지 (0) | 2020.02.12 |
[Django App 3-3] 인스타그램 클론 코딩_회원가입 페이지 (0) | 2020.02.12 |
[Django App 3-2] 인스타그램 클론 코딩_앱 만들기 (0) | 2020.02.11 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Django 회원가입
- Django User
- Django
- Django 컬렉션
- 파이썬
- Django 비밀번호 수정
- Django 해시태그
- Django 프로젝트 생성
- Django 북마크
- Django 댓글
- MySQL
- Django 로그아웃
- Django 회원 정보 수정
- python
- Django 인스타그램
- java
- Django 검색
- 북마크 어플리케이션
- Django Instagram
- 장고
- 서점 어플리케이션
- Django 업로드
- Django 로그인
- Redis Cache
- Django 팔로우
- Django 좋아요
- Django 어플리케이션
- Redis
- query parameter
- Django application
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함