devops——4、用户登录参数练习

dashboard/views.py
from django.http import HttpResponse

def login(request):
    if request.method == "POST":
        username = request.POST.get("username")
        userpass = request.POST.get("userpass")
        if username == "admin" and userpass == "123456":
            msg = "登录成功"
        else:
            msg = "登录失败"
    else:
        msg = "请求方法不被允许"
    return HttpResponse(msg)

devops/urls.py
from django.conf.urls import url,include
from .views import index, login

urlpatterns = [
    url(r'^$', index, name='index'),
    url(r'^login/$', login, name='login')
]

测试:

In [28]: url = "http://127.0.0.1:8000/dashboard/login/"                                     
In [29]: data = {}                                                                          
In [30]: data["username"] = "admin"                                                         
In [31]: data["userpass"] = "123456"                                                        
In [32]: r = requests.post(url, data)                                                       
In [33]: r.status_code                                                                      
Out[33]: 200
In [34]: r.content                                                                          
Out[34]: b'\xe7\x99\xbb\xe5\xbd\x95\xe6\x88\x90\xe5\x8a\x9f'

In [35]: r.content.decode("utf8")                                                           
Out[35]: '登录成功'

In [36]: data["userpass"] = "12345"                                                         
In [37]: r = requests.post(url, data)                                                       
In [38]: r.content.decode("utf8")                                                           
Out[38]: '登录失败'

用户登录:

一个视图:
GET请求:展示用户登录页面
POST请求:执行用户登录

  1. 接收post过来的用户名与密码
  2. 验证用户与密码是否正确,根据用户名查询出对应的记录
    记录不存在:用户不存在
    记录存在:对比用户密码是否一致
  3. 返回结果

dashboard/views.py

dashboard/views.py
from django.shortcuts import render
from django.http import HttpResponse,QueryDict
# from django.contrib.auth.models import User
from django.contrib.auth import authenticate,login

# def login(request):
#     if request.method == "POST":
#         username = request.POST.get("username")
#         userpass = request.POST.get("userpass")
#         if username == "admin" and userpass == "123456":
#             msg = "登录成功"
#         else:
#             msg = "登录失败"
#     else:
#         msg = "请求方法不被允许"
#     return HttpResponse(msg)

def loginView(request):
    if request.method == "POST":
        username = request.POST.get("username")
        userpass = request.POST.get("userpass")
        # try:
        #     User.objects.get(username=username)
        # except User.DoesNotExist:
        #     return HttpResponse("用户不存在")

        user = authenticate(request, username=username, password=userpass)
        if user is not None:
            login(request, user)
            return HttpResponse("用户登录成功")
        else:
            return HttpResponse("用户登录失败")
    return render(request, 'login.html')


devops/urls.py
from django.conf.urls import url,include
from .views import index, loginView

urlpatterns = [
    url(r'^$', index, name='index'),
    url(r'^login/$', loginView, name='login')
]

devops/urls.py

from django.conf.urls import url,include
from .views import index, loginView

urlpatterns = [
    url(r'^$', index, name='index'),
    url(r'^login/$', loginView, name='login')
]

dashboard/templates/login.html

dashboard/templates/login.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用户登录</title>
</head>
<body>
<ul>
    <form method="post">
        <li>
            <span>用户名:</span>
            <input type="text" name="username" />
        </li>
        <li>
            <span>密码:</span>
            <input type="password" name="userpass" />
        </li>
        <li>
            <input type="submit">
        </li>
    </form>
</ul>
</body>
</html>

在浏览器访问http://127.0.0.1:8000/dashboard/login/ 用户名rock 密码654321
用户名密码正确显示:用户登录成功 ,否则显示:用户登录失败
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值