登録、ログイン、ログアウト
9872 ワード
登録、ログイン、ログアウト
本明細書で提供する関数の使用
1) views.pyへの会員加入関数、ログイン関数、ログアウト関数のインポート
1)Accountsアプリケーションを作成して設定します.pyに登録
2)accountsにテンプレートフォルダを作成してログインします.html, signup.htmlファイルの生成
3)アカウントのURL.pyを作成し、includeを使用してURLを管理 GET(データ照会)、POST(データ生成)、PUT(データ修正)、DELETE(データ削除) .メソッドが指定されていない場合、GET方式.だからお願いします.GET["xxx"]を使用してフォーム値 を入力 GET方式でデータを送信受信と、URLにデータ が表示される. URLは、直接情報漏洩のないPOSTメソッド が必要である.
本明細書で提供する関数の使用
1) views.pyへの会員加入関数、ログイン関数、ログアウト関数のインポート
from django.contriv.auth.models import User
from django.contrib import auth
2)会員の追加(会員加入)User.objects.create_user()
create_user(usernmae,password)
3)ログインauth.authenticate() # 등록된 회원인지 확인
auth.login(request, user) # 로그인
4)ログアウトauth.logout(request) # 로그아웃
実習1)Accountsアプリケーションを作成して設定します.pyに登録
2)accountsにテンプレートフォルダを作成してログインします.html, signup.htmlファイルの生成
3)アカウントのURL.pyを作成し、includeを使用してURLを管理
from . import views
urlpatterns = [
path('signup/', views.signup, name='signup'),
path('login/', views.login, name='login'),
path('logout/', views.logout, name='logout'),
]
4) signup.html, login.html<form method="POST" action="{% url 'signup'%}">
{% csrf_token %} # 보안을 위한 것
5) views.pyfrom django.contrib.auth.models import User
from dhango.contrib import auth
def signup(request):
if request.method == 'POST': # 회원가입을 누르고 전송했다면(form의 method가 POST방식이었기 때문)
if request.POST['password1'] == request.POST['password2']: # 비밀번호 확인으로 두번째 입력한 비밀번호가 첫번째와 같다면
user = Usert.objects.create_user(username=request.POST['username'], password=request.POST['password1']
# 회원추가, form의 username을 usename이라는 변수에 담는다. (비밀번호도 마찬가지)
auth.login(request, user) # 로그인, user는 바로 윗줄의 user이다.
return redirect('home')
return render(request, 'signup.html') # 아니라면 signup.html에 계속 머문다
def login(request):
if request.ethod == 'POST':
username = request.POST.['username']
password = request.POST.['password']
user = auth.authenticate(request, username=username, password=password) # 등록된 회원인지 확인
if user is not None: # 이미 존재하는 회원이라면
auth.login(request, user) # 로그인
return redurect('home')
else:
return render(request, 'login.html', {'error':'username or password is incorrect.'}) # 에러
else:
return render(request, 'login.html')
def logout(request):
if request.method == 'POST':
auth.logout(request)
return redirect('home')
return render(request, 'login.html')
7) base.html<a href="{% url 'signup' %}"> 회원가입 </a>
<a href="{% url 'login' %}"> 로그인 </a>
<a href="{% url 'logout' %}"> 로그아웃 </a>
http methodReference
この問題について(登録、ログイン、ログアウト), 我々は、より多くの情報をここで見つけました https://velog.io/@hyeoneedyou/회원가입-로그인-로그아웃テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol