1) 더 자세한 기능들 추가해보기
로그인, 회원가입 등의 기능을 위해 적절한 위치에 파일을 넣어야한다.
templates > base.html : 유저의 템플릿을 만들 것이고,
templates > user(폴더생성) > signin.html, signin.html : signin/up으로 로그인 회원가입 기능을 구현해볼 수 있다
위치를 잘 기억하기!
하위 html에 다른 html 형식을 받아와 추가할 수도 있다.
{% %} #장고 문법 : 다른 html형식을 받아오겠다는 표현
{% extends 'base.html' %} #base파일을 확장해서 signin파일으 확장해나가겠다
{% block title %}
로그인
{% endblock %}
{% block content %}
각 앱의url는 관리하기 좋도록 해당 앱 폴더에 urls.py에 넣어주는데
가장 상위의 urls에도 include를 통해 추가해주어야 전체적인 관리를 할 수 있다.
path('',include('user.urls')), #상위urls.py에 추가해주기
사용자 요청==> 전체파일 => urls에서 해당 url을 부름 => url정보를 불러와서 전달.. 하는 로직이라고 보면된다.
2)GET 과 POST
<form> : 화면의 데이터를 서버에 전송할때 사용하는 태그
<form class="form-area" method="post" action="/sign-up/"> #method action 순서는 상관없음!
{% csrf_token %} : 회원가입시에는 보안을 추가해주어야합니다 뿌듯^.^
method 는 어떤 기능을 사용할 것인지,
action 은 어떤 url에서 진행할 것인지 "/양끝/" 빼먹지 않기
= 그러니까 회원가입 form에 정보를 넣으면 post를 사용해 (+보안) 저장하겠다. 는 내용
view.py에 입력할 내용에 대한 코드를 작성해준다.
username = request.POST.get('username',None)
유저네임(변수) = 요청.포스트기능으로.가져온다(데이터'유저네임',없으면 None으로)
추가한 사용자 데이터가 db로 들어갈 수 있도록 ..!
회원가입시 하던 루틴을 생각해보면 password 2개입력하고 확인하던 과정을 if문으로 작성 가능!(우왕)
if password != password2 :
# render로 새창띄워주기, 경고문띄워주기 등의 기능을 넣어주자.
else:
new_user = UserModel()
new_user.username = username
#필요내용 더 추가
new_user.save() #저장
redirect('url') #어떤 동작이 완료되었을때 url페이지로 바로 이동
3)로그인을 위한 기능 넣기.
세션 : 사용자의 정보를 저장하는 공간!
HttpResponse로 화면에 글자를 띄워준다.
return HttpResponse('로그인 성공!') #로그인 성공시 글씨가 뜨도록
sign-up에서 했던 것처럼 username, password를 입력하는 요청을하고
등록된 user가 있는지 아래와 같이 확인한다.
me = UserModel.objects.get(username=username)
#UserModel.데이터객체.get(데이터name = 입력값) 확인
if me.password == password: #패스워드 확인
request.session['user'] = me.username #입력받은 유저네임과 데이터유저네임이 같으면
return HttpResponse('로그인 성공!')
else:
return redirect('/sign-in')
'AI 웹개발반 > Python, Django' 카테고리의 다른 글
[Django] 06 회원가입, 로그인기능 수정하기 (0) | 2023.04.06 |
---|---|
[Django] 05 user model에 기능 추가하기 (0) | 2023.04.05 |
[Django] 03 앱 추가 + DB연결, admin (0) | 2023.04.04 |
[Django] 02 페이지 만들기 (0) | 2023.04.04 |
[Django] [TIL] 장고 환경 세팅, 오류메세지를 해결하는 사고 (0) | 2023.04.03 |