利用django框架,快速開發一個登錄接口


django的mvt模式大概有什么作用,templates用來寫前端html頁面,views視圖函數用來編寫業務邏輯,是前后端交互的中間層,前端獲取用戶輸入的數據,通過views視圖函數保存到models數據庫里面去,前端需要展示的頁面數據也是通過views函數來獲取到數據庫里面的數據然后傳遞到前端的模板里面去, models模型主要用來設計數據表,對表數據進行增刪改查的操作。

開發登錄接口大致分為3個步驟:

第一步編寫html模板:

<!DOCTYPE html>
<html lang="en">
<head>
<title>登陸頁面</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<form action="" method="post">
<table align="center">
<tr>
<td>用戶名</td>

<td>
<input type="text" name="username" />
</td>
</tr>
<tr>
<td>密碼</td>
<td>
<input type="text" name="password"/>
</td>
<tr>
<td>
<input type="submit" value="提交">
</td>

</tr>
</table>
</form>
</body>
</html>

打開如圖:

 

第二步創建數據庫表:

如圖定義好模型:

settings文件里配置數據庫信息:

打開cmd執行遷移命令,生成數據庫表

Python manage.py makemigrations

Python manage.py migrate

如圖:

 

 生成成功如圖:

里面數據是我自己添加的

第三步編寫views視圖函數:

如下:

大意是從前端頁面獲取到數據分別存儲到username,password這2個變量里面,再從數據庫里面讀取數據,進行對比,2端數據一樣則返回成功,不一樣則返回用戶名或密碼錯誤。

def studentlogin(request):
    if request.method == "GET":
        return render(request,"student_login.html")
    if request.method == "POST":
        username = request.POST.get("username")
        password = request.POST.get("password")
        print("用戶名:{},密碼:{}".format(username,password))
        # TODO 獲取到對象,從數據庫里取值
        res = StundentInfo.objects.get(id=1)
        if res.username == username and res.password == password:
            print("數據庫用戶名:{},密碼:{}".format(res.username,res.password))
            result = {"code": 0,
                      "msg": "success!",
                      "data": {"username": username,
                               "password": password,
                               }
                      }
            return JsonResponse(result)
        else:
            return HttpResponse("用戶名或密碼錯誤")

 從數據庫里面取值:

res = StundentInfo.objects.get(id=1),會返回一個對象,通過對象拿到里面的username和password的值:

 添加url映射:

啟動服務:python manage.py runserver 0.0.0.0:8000

fiddler抓包如下:

判斷輸入非空數據和保存數據:

def studentlogin(request):
    if request.method == "GET":
        return render(request, "student_login.html")
    if request.method == "POST":
        username = request.POST.get("username")
        password = request.POST.get("password")
        print("用戶名:{},密碼:{}".format(username, password))
        # TODO 獲取到對象,從數據庫里取值
        res = StundentInfo.objects.get(id=1)
        if res.username == username and res.password == password:
            print("數據庫用戶名:{},密碼:{}".format(res.username, res.password))
            result = {"code": 0,
                      "msg": "success!",
                      "data": {"username": username,
                               "password": password,
                               }
                      }
            return JsonResponse(result)
        elif username.strip() != '' and password.strip() != '':
            info = StundentInfo.objects.create(username=username, password=password)
            info.save()
            return HttpResponse("已保存數據")
        else:
            return HttpResponse("請重新輸入")

 


免責聲明!

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



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