前面寫了一篇關於登陸的案例,當時案例把登陸的帳號密碼都寫死了,若是帳號密碼正確就登陸到安靜的博客中,若是失敗就提示用戶名或者密碼錯誤。這裏咱們完善一下注冊和登陸而且同步給數據庫html
進入到註冊頁面,完成註冊後,數據同步到數據庫中,而後跳轉到登陸頁面,若是註冊帳號存在就返回提示用戶已存在,帳號密碼正確登陸成功後跳轉到安靜博客園地址,失敗的話就提示用戶名密碼錯誤python
其中{{ error_name }}表示接收錯誤提示內容數據庫
# register.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>註冊</title> </head> <body> <h1> <p style="text-align:center">新用戶註冊</p> </h1> <center> <form action="" method="post"> {% csrf_token %} <p style="text-align:center">用戶:<input type="text" name="username" /></p> <p style="text-align:center">郵箱:<input type="text" name="email"/> </p> <p style="text-align:center">密碼:<input type="password" name="password"/></p> <input type="submit" value="註冊" /> <p style="color: red;text-align: center">{{ error_name }}</p> </form> </body> </html>
咱們須要建立一個數據庫,把註冊的信息用戶名,郵箱,密碼添加到數據庫中,須要建立對用的表。其中建立了一個自生成的主鍵django
# model.py
from django.db import models class User(models.Model): id = models.AutoField(primary_key=True) # 建立一個主鍵 username = models.CharField(max_length=32) # 用戶名 password = models.CharField(max_length=32) # 密碼 email = models.CharField(max_length=32) # 郵箱
在建立完表後,千萬不要忘記同步數據庫,輸入下面兩條命令函數
# 同步數據庫 python manage.py makemigrations # 建立數據庫 python manage.py migrate
在views.py文件中建立一個函數,把註冊的內容寫進去post
# views.py from django.shortcuts import render,redirect from Anjing import models def register(request): # 定義一個錯誤提示爲空 error_name = '' if request.method=='POST': user = request.POST.get('username') password = request.POST.get('password') email = request.POST.get('email') user_list = models.User.objects.filter(username=user) if user_list : # 註冊失敗 error_name = '%s用戶名已經存在了' % user # 返回到註冊頁面,而且把錯誤信息報出來 return render(request,'register.html',{'error_name':error_name}) else: # 數據保存在數據庫中,並返回到登陸頁面 user = models.User.objects.create(username=user, password=password, email=email) user.save()
# 同ip下跳轉 return redirect('/login/')
return render(request,'register.html')
一樣也須要在urls.py文件中映射咱們的地址學習
# urls.py from django.contrib import admin from django.urls import path from Anjing import views urlpatterns = [ path('admin/', admin.site.urls), path('login/', views.login), # 登陸 path('register/', views.register), # 註冊 ]
啓動Django http://127.0.0.1:8000/register/ 進入到註冊頁面,輸入想要註冊的用戶名帳號,點擊註冊,直接跳轉到了登陸頁面url
若是註冊用戶名存在的話,直接報用戶名已經存在spa
打開數據庫查看數據已經入庫了code
前面已經寫過一個登陸流程了,可是沒有獲取數據庫的數據,改下上一篇的代碼把寫死的帳號密碼,直接與數據庫進行對比,若是存在就登陸成功,若是失敗就提示用戶名密碼錯誤
# view.py from django.shortcuts import render,redirect from Anjing import models def login(request): # 定一個爲空的錯誤接收 error_msg = '' if request.method == 'POST': username = request.POST.get('username') password = request.POST.get('password') # 判斷數據庫中有沒有帳號密碼 ret = models.User.objects.filter(username=username, password=password) if ret: # 登陸到安靜博客 return redirect('https://www.cnblogs.com/qican/') else: # 登陸失敗 error_msg = '用戶名或密碼錯誤,請從新輸入!' return render(request, 'login.html', {'error_msg':error_msg})
再次啓動Django輸入 http://127.0.0.1:8000/login/ 進行輸入剛纔的帳號密碼能夠看到已經登陸到安靜的博客園中了
若是這裏輸入錯誤的帳號密碼的話就會提示用戶名密碼錯誤
這裏就把註冊和登陸的數據都是有數據庫中提取了。
PS:流程和代碼可能有點亂,沒有寫過多少Django,也是初學者,若是有錯誤的或者不懂的歡迎你們留言,咱們共同窗習~