django登錄與註銷學習筆記
阿新 • • 發佈:2019-04-06
too 12c http nta utf miss bootstrap container username 創建工程
django-admin startproject 工程名字
創建項目
python manage.py startapp 應用名
註冊django後臺管理代碼
#後臺認證數據表遷移 D:\pythonspacen\djano\guest>python manage.py migrate Operations to perform: Apply all migrations: admin, auth, contenttypes, sessions Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying auth.0009_alter_user_last_name_max_length... OK Applying sessions.0001_initial... OK #創建用戶 D:\pythonspacen\djano\guest>manage.py createsuperuser Username (leave blank to use ‘admin‘): Email address: [email protected] Password: Password (again): The password is too similar to the email address. Password: Password (again): Superuser created successfully.
編寫配置路由代碼
from django.contrib import admin from django.urls import path from sign import views urlpatterns = [ path(‘admin/‘, admin.site.urls), path(‘‘, views.index), path(‘index/‘, views.index), path(‘accounts/login/‘, views.index), # 認證系統 path(‘Login/‘, views.Login), path(‘logout/‘, views.logout), # 退出系統 path(‘event_manage/‘, views.event_manage), ]
編寫視圖代碼
from django.contrib.messages.storage import session from django.shortcuts import render from django.http import HttpResponse, HttpResponseRedirect from django.contrib import auth from django.contrib.auth.decorators import login_required def index(request): return render(request, "index.html") # 使用django登錄 def Login(request): if request.method == ‘POST‘: login_username = request.POST.get(‘username‘, ‘‘) login_password = request.POST.get(‘password‘, ‘‘) # 使用框架系統的用戶系統 user = auth.authenticate(username=login_username, password=login_password) if user is not None: auth.login(request, user) request.session[‘user‘] = login_username response = HttpResponseRedirect(‘/event_manage/‘) return response elif login_password == "" and login_username == "": return render(request, "index.html", {‘error‘: ‘username or password null‘}) else: return render(request, "index.html", {‘error‘: ‘username or password error!‘}) else: return render(request, "index.html") # 列表 @login_required def event_manage(request): # username = request.COOKIES.get("user", "") username = request.session.get(‘user‘, ‘‘) conten = {‘infon‘: "login success!", ‘user‘: username} return render(request, "event_manage.html", conten) # 退出 @login_required def logout(request): # 使用框架系統退出 auth.logout(request) # 調轉到頁面 response = HttpResponseRedirect(‘/index/‘) return response
啟動項目
使用剛才註冊的用戶名與密碼登錄
登錄成功
inde.html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>登錄頁面</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
<style type="text/css">
#red {
color: red;
}
</style>
</head>
<body>
<div class="container">
<form class="form-horizontal" action="/Login/" method="post">
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">用戶名: </label>
<div class="col-sm-10">
<input type="text" name="username" class="form-control-static" id="inputEmail3" placeholder="username">
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label">密碼:</label>
<div class="col-sm-10">
<input type="password" name="password" class="form-control-static" id="inputPassword3"
placeholder="Password">
</div>
</div>
<p id="red" style="left: 390px">{{ error }}</p>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<div class="checkbox">
<label>
<input type="checkbox"> 記住
</label>
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-primary">登錄</button>
</div>
</div>
{% csrf_token %}
</form>
</div>
<!-- jQuery (Bootstrap 的所有 JavaScript 插件都依賴 jQuery,所以必須放在前邊) -->
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js"></script>
<!-- 加載 Bootstrap 的所有 JavaScript 插件。你也可以根據需要只加載單個插件。 -->
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js"></script>
</body>
</html>
頁面跳轉
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>發布會列表</title>
</head>
<body>
<a href="/logout/">退出</a>
<a href="/event_manage/"> Welcome,{{ user }}</a>
<h2>{{ infon }}</h2>
</body>
</html>
django登錄與註銷學習筆記