1. 配置html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>User Login</title>
  6. </head>
  7. <body>
  8. <h1> 欢迎登录! </h1>
  9. {# action向login返回post请求 #}
  10. <form action="/login/" method="post">
  11. 用户名: <input type="text" name="username">
  12. 密 码: <input type="text" name="password">
  13. <input type="submit">
  14. </form>
  15. </body>
  16. </html>

2. 写登录逻辑

test01/views.py

  1. from django.shortcuts import render
  2. from django.shortcuts import HttpResponse
  3. def login(request):
  4. method = request.method # 获取用户请求方式
  5. if method == 'GET':
  6. return render(request,'login.html')
  7. else:
  8. # request.POST 获取的返回结果 <QueryDict: {'username': ['guo'], 'password': ['guo']}>
  9. username = request.POST.get('username')
  10. password = request.POST.get('password')
  11. if username == 'guo' and password == 'guo':
  12. # HttpResponse 向用户界面返回字符串
  13. return HttpResponse('登录成功')
  14. else:
  15. return HttpResponse('登录失败')

3. 关闭Django的Post认证


django_project/settings.py

  1. MIDDLEWARE = [
  2. 'django.middleware.security.SecurityMiddleware',
  3. 'django.contrib.sessions.middleware.SessionMiddleware',
  4. 'django.middleware.common.CommonMiddleware',
  5. # 'django.middleware.csrf.CsrfViewMiddleware', 关闭POST校验
  6. 'django.contrib.auth.middleware.AuthenticationMiddleware',
  7. 'django.contrib.messages.middleware.MessageMiddleware',
  8. 'django.middleware.clickjacking.XFrameOptionsMiddleware',
  9. ]

4. 配置url

  1. import test01.views
  2. urlpatterns = [
  3. path('admin/', admin.site.urls),
  4. path('index/',test01.views.index),
  5. path('login/', test01.views.login), # 新增
  6. ]

5. 验证

  • 成功

image.pngimage.png

  • 失败

image.pngimage.png