前端(HTML)+后端(Django)+數據庫(MySQL):用戶注冊及登錄演示


原文章https://www.cnblogs.com/ilovepython/p/10776850.html

1、創建一個html文件用於簡單的網頁注冊demo

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>注冊</title>
</head>
<body><!--表單域,action用於將獲取的到信息提交到后台地址-->
<form action="save" method="get">
    <span>
        用戶:<input type="text" name="username">
    </span>
    <br>
    <span>
        密碼:<input type="password" name="password">
    </span>
    <br>
    <span>
        <input type="submit" name="submit1" value="注冊">
    </span>

</form>
</body>
</html>

2、創建一個html文件用於簡單的網頁登錄demo

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登錄</title>
</head>
<body>
<form action="query" method="get">
    <span>
        用戶:<input type="text" name="username">
    </span>
    <br>
    <span>
        密碼:<input type="password" name="password">
    </span>
    <br>
    <span>
        <input type="submit" name="submit1" value="登錄">
    </span>

</form>
</body>
</html>

3、創建一個Django項目,並將剛才的兩個html文件放入template模板文件夾中

img

4、打開Django項目下默認生成的urls.py文件,進行一些業務功能的編輯

"""Django01 URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/2.1/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path
from django.shortcuts import render
from django.shortcuts import HttpResponse
import pymysql
#登錄頁面
def login(request):
    #指定要訪問的頁面,render的功能:講請求的頁面結果提交給客戶端
    return render(request,'login.html')
#注冊頁面
def regiter(request):
    return render(request,'regiter.html')
#定義一個函數,用來保存注冊的數據
def save(request):
    has_regiter = 0#用來記錄當前賬號是否已存在,0:不存在 1:已存在
    a = request.GET#獲取get()請求
    #print(a)
    #通過get()請求獲取前段提交的數據
    userName = a.get('username')
    passWord = a.get('password')
    #print(userName,passWord)
    #連接數據庫
    db = pymysql.connect('127.0.0.1','root','123','db2')
    #創建游標
    cursor = db.cursor()
    #SQL語句
    sql1 = 'select * from user1'
    #執行SQL語句
    cursor.execute(sql1)
    #查詢到所有的數據存儲到all_users中
    all_users = cursor.fetchall()
    i = 0
    while i < len(all_users):
        if userName in all_users[i]:
            ##表示該賬號已經存在
            has_regiter = 1

        i += 1
    if has_regiter == 0:
        # 將用戶名與密碼插入到數據庫中
        sql2 = 'insert into user1(username,password) values(%s,%s)'
        cursor.execute(sql2,(userName,passWord))
        db.commit()
        cursor.close()
        db.close()
        return HttpResponse('注冊成功')
    else:

        cursor.close()
        db.close()
        return HttpResponse('該賬號已存在')

def query(request):
    a = request.GET
    userName = a.get('username')
    passWord = a.get('password')
    user_tup = (userName,passWord)
    db = pymysql.connect('127.0.0.1','root','123','db2')
    cursor = db.cursor()
    sql = 'select * from user1'
    cursor.execute(sql)
    all_users = cursor.fetchall()
    cursor.close()
    db.close()
    has_user = 0
    i = 0
    while i < len(all_users):
        if user_tup == all_users[i]:
            has_user = 1
        i += 1
    if has_user == 1:
        return HttpResponse('登錄成功')
    else:
        return HttpResponse('用戶名或密碼有誤')
urlpatterns = [
    path('admin/', admin.site.urls),#系統默認創建的
    path('login/',login),#用於打開登錄頁面
    path('regiter/',regiter),#用於打開注冊頁面
    path('regiter/save',save),#輸入用戶名密碼后交給后台save函數處理
    path('login/query',query)#輸入用戶名密碼后交給后台query函數處理

]

5、運行整個Django項目,訪問相應的url

img

數據庫數據情況:

img

img

img

后台狀態信息

img

再次查看數據庫數據:

img

6、再次進行登錄操作,打開登錄的url

img

img

測試一個用戶名錯誤情況:

img


免責聲明!

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



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