djangoパッケージされたloginとlogoutは全プロセスで実現
13280 ワード
djangoパッケージでログインを実現
1.djangoプロジェクトを作成し、uauthというappを構築します。具体的な方法は前の文章を見ることができます。
2.プロファイル、setting.py , init.pyこれらはすべて前の構成と同じです
3.データベースを移行し、自分でテーブルを作成する必要はありません。
4.主工事下urls.pyファイル
rom django.conf.urls import url, include
from django.contrib import admin
from uauth import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
# , ,django , ,
url(r'^accounts/profile/', views.myIndex),
url(r'^uauth/', include('uauth.urls', namespace='uauth')),
]
5.app uauthファイルの下にurlsを作成する.pyファイル、具体的な内容は以下の通りです
from django.conf.urls import url
# , ,
from django.contrib.auth.views import login, logout
from uauth import views
urlpatterns = [
# ,
url(r'^accounts/login/$', login),
# ,
url(r'^accounts/logout/$', logout),
# ,
url(r'^createuser/', views.createUser),
]
6. views.pyファイルへの追加方法
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render
from django.contrib.auth.models import User
from django.contrib import auth
# Create your views here.
#
def createUser(request):
if request.method == 'GET':
return render(request, 'register.html')
if request.method == 'POST':
username = request.POST.get('username')
upassword = request.POST.get('password')
#
user = User.objects.create_user(
username=username,
password=upassword
)
user.is_staff = True
user.save()
# ,
return HttpResponse(' ')
# sesstion ID
def myIndex(request):
if request.user.is_authenticated():
return render(request, 'index.html')
else:
#
return HttpResponseRedirect('/uauth/accounts/login/')
7.自分でHTMLファイルを作成する
<html lang="en">
<head>
<meta charset="UTF-8">
<title> title>
head>
<body>
<form action="/uauth/accounts/login/" method="post">
{% csrf_token %}
<label for="username">User name:label>
<input type="text" name="username" value="" id="username">
<label for="password">Password:label>
<input type="password" name="password" value="" id="password">
<input type="submit" value="login" />
<input type="hidden" name="next" value="{{ next|escape }}" />
<br />
<a href="/uauth/createuser/">registera>
form>
body>
html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title> title>
head>
<body>
<form action="" method="post">
{% csrf_token %}
<label for="username">User name:label>
<input type="text" name="username" value="" id="username">
<label for="password">Password:label>
<input type="password" name="password" value="" id="password">
<input type="submit" value="regiset" />
form>
body>
html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>hellotitle>
head>
<body>
<h4>hello, world!h4>
<a href="/uauth/accounts/logout/">logouta>
body>
html>