Django+pycharm+mysql 實現用戶登錄/注冊(Django五)


首先是讓Django項目與mysql數據庫初步建立連接

具體做法見:pycharm連接mysql(注意其中第二步MySQL驅動最好安裝最新版的)

這里講一下我在做這一步遇到的問題。一般Driver 那里的com.mysql.cj.jdbc.Driver是會自動顯示的,但我一開始不顯示
在這里插入圖片描述
因為我的mysql-connector-java-8.0.19文件夾如下,重復了,(這個是我拿下載到的zip選擇解壓文件得到的),得選第二個mysql-connector-java-8.0.19才有效:
在這里插入圖片描述
正確的mysql-connector-java-8.0.19包含如下文件,
在這里插入圖片描述
ok,按以上步驟完成便可與mysql初步建立連接了。
連接建立后便可以在pycharm直接對數據庫進行操作了

這里的對DB navigator的操作自己隨便點點就可以懂了,無非就是增刪改查,不細說

接下來就是一些配置問題

在settings.py里做如下修改:
在這里插入圖片描述
這里的name填寫你要連接的MySQL中的數據庫名字
在這里插入圖片描述
在這里注冊以下app,my_app是我創建的app的名字
然后對init.py做如下修改:
在這里插入圖片描述

在models.py中添加如下代碼,創建一個user模型:
在這里插入圖片描述

然后在admin.py中注冊一下該模型:
在這里插入圖片描述

這樣我們就在數據庫中創建了一個user表,如圖:
在這里插入圖片描述

隨后通過connection在表中添加數據,這個自己摸索一下即可實現
在這里插入圖片描述

這樣表中就有了兩個我們插入的數據:
在這里插入圖片描述

最后一步,在終端執行如下命令:
python manage.py makemigrations
python manage.py migrate
這兩個命令的作用可以自行網上了解
在這里插入圖片描述

到這里就剩最后一步了,即登錄頁面提交表單,隨后到數據庫中驗證

找到登錄頁面的表單:
在這里插入圖片描述
其中action代表你將表單提交至何處(后面我們會詳寫check_login),用戶名和密碼輸入里的name,我們后面會根據這兩個name獲取兩個框中輸入的值(見下圖代碼,點擊登錄時提交表單,獲取到了id為login-username框中輸入的值,而userName恰好就是上圖里的name)
在這里插入圖片描述

到urls.py中添加check_login:
在這里插入圖片描述最后到views.py中詳細寫一下check_login.

先如下,暫時並未與數據庫相連接

def check_login(request): if request.method == "POST": username = request.POST.get('userName', None) #userName為上圖form表單中用戶名那里的name值 password = request.POST.get('passWord', None) if username =='admin' and password =='123456': return redirect('homepage') #跳轉至homepage頁面 else: return render(request, 'login.html') 

 

在登錄頁面,用戶名輸入admin,密碼輸入123456
若可以跳轉至homepage頁面,則代表成功獲取到了框中輸入的用戶名和密碼

接下來就是連接數據庫了,代碼如下:

def check_login(request): if request.method == "POST": username = request.POST.get('userName', None) password = request.POST.get('passWord', None) #if username =='admin' and password =='123456':///此處試驗成功,成功從表單處得到輸入的用戶名和密碼 # return redirect('homepage') #else: # return render(request, 'register.html') if username and password: # 確保用戶名和密碼都不為空 username = username.strip() try: user = models.User.objects.get(name=username) #看前面創建的user表中是否有name值符合登錄頁面輸入的用戶名 except: return render(request, 'register.html') #數據庫中沒有相應的用戶名,跳轉至注冊頁面 if user.password == password: return redirect('homepage') return render(request, 'login.html') 

 

ok,這樣就可以在Django中實現登錄功能啦
如果本片博客無法幫你用Django實現登錄/注冊,可以結合一下https://blog.csdn.net/laikaikai/article/details/80563387,這篇博客中的登錄注冊部分還是很詳細的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM