1、登录页面
2、项目目录结构
3、需要修改四个文件
urls.py-------路径与函数之间的对应关系
views.py-------函数定义与逻辑处理
加入一个login.html文件
静态文件夹下面加入bootstrap、jquery等文件
4、urls.py修改
from django.conf.urls import url from .views import * # 保存了路径与函数之间的对应关系 urlpatterns = [ # path('admin/', admin.site.urls), url(r'^test/$', test), url(r'^test01/$', test01), url(r'^zhangxiaoxue/$', zhangxiaoxue), url(r'^login/$', login), ]
5、view.py配置
# views.py只是存放逻辑处理函数 from django.contrib import admin from django.urls import path from django.conf.urls import url # 导入django自带的httpResponse模块,用他来帮我们做http协议的响应 # 这样,我们只需关心处理用户请求的函数就可以了,而不需要关注协议本身所做的事情, # 要返回一个完整的html文件,就要用到render from django.shortcuts import HttpResponse,render,redirect def login(request): error_msg = '' userlist = [] # 如果请求是post if request.method == 'POST': # 获取用户提交的数据,做是否登录成功的判断 # email = request.POST.get('email', None) email = request.POST["email"] pwd = request.POST["pwd"] temp = {'email': email, 'pwd': pwd} userlist.append(temp) # pwd = request.POST.get('pwd', None) ': return redirect('http://www.baidu.com') # return HttpResponse('登录成功!!!') else: error_msg = "账号或密码错误!请重新登录!" # 如果是其他的请求 return render(request, 'login.html', {'error': error_msg, 'data': userlist})
6、login.html文件【用了bootstrap所以要引入】
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta http-equiv="x-ua-compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="/static/bootstrap/css/bootstrap.min.css"> <link rel="stylesheet" href="/static/fontawesome/css/font-awesome.min.css"> <script href="/static/jquery-3.3.1.js"></script> <title>mysite-登录页面</title> <style> body { background-color: #eee; } </style> </head> <body> <div class="container"> <div class="row"> <div class="col-md-4 col-md-offset-4" style="margin-top: 100px"> <h1 class="text-center">请登录</h1> <form class="form-horizontal" action="/login/" method="post"> <div class="form-group"> <label for="inputEmail3" class="col-sm-2 control-label"></label> <div class="input-group col-sm-8"> <span class="input-group-addon"><i class="fa fa-envelope-o fa-fw"></i></span> <input type="email" name="email" class="form-control" id="inputEmail3" placeholder="Email"> </div> </div> <div class="form-group"> <label for="inputPassword3" class="col-sm-2 control-label"></label> <div class="input-group col-sm-8"> <span class="input-group-addon"><i class="fa fa-key fa-fw"></i></span> <input type="password" name="pwd" class="form-control" id="inputPassword3" placeholder="Password"> </div> </div> <div class="form-group"> <div class="input-group col-sm-offset-2 col-sm-8"> <div class="checkbox"> <label> <input type="checkbox"> 记住我 </label> </div> </div> </div> <div class="form-group"> <div class="input-group col-sm-offset-2 col-sm-8"> <button type="submit" class="btn btn-primary btn-block">登录</button> </div> <p class="text-danger text-center">{{ error }}</p> </div> {#{% csrf_token %}是为了解决下面的问题#} {# CSRF verification failed. Request aborted. 这一个是 Django 自带的 CSRF 防范机制。CSRF 是什么?某度百科有言:“CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。”(可以看出,我们的 Django 框架,可是相当的严谨和方便。)#} {% csrf_token %} </form> <h1>用户展示</h1> <table border = '> <thead > <tr>用户名</tr> <tr>密码</tr> </thead> <tbody > {% for item in data %} <tr> <td>{{ item.email }}</td> <td>{{ item.pwd }}</td> </tr> {% endfor %} </tbody> </table> </div> </div> </div> </body> </html>
7、static文件夹
【加入bootatrap、fontawesome、jquery、可以自定义css文件】
8、运行
python3 manage.py runserver
9、浏览器访问localhost:8000/login