Python - Django - 登录页面
登录页 login.html:
<!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">
<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="/check/" 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>
</div>
</form>
</div>
</div>
</div>
</body>
</html>
urls.py:
# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR" from django.conf.urls import url
from django.contrib import admin
from django.shortcuts import HttpResponse, render, redirect def login(request):
return render(request, "login.html") def check(request):
# 获取用户提交的数据
print(request.POST) # 取得所有 POST 过来的数据
return HttpResponse('ok') # 保存路径和函数的对应关系
urlpatterns = [
url(r'^login/', login),
url(r'check/', check),
]
在登录界面随便输内容

点击“登录”

这种情况下要将 settings.py 中的一行代码注释掉

带有 CSRF 这个
注释好后重新输入邮箱和密码

返回成功

Pycharm 打印出了接收到的 POST 的数据,以字典类型
这里要注意一点的是,这里的 key 是和 form 表单中的 name 属性的 email,pwd 相对应的

接下来判断邮箱和用户名是否正确
# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR" from django.conf.urls import url
from django.contrib import admin
from django.shortcuts import HttpResponse, render, redirect def login(request):
return render(request, "login.html") def check(request):
# 获取用户提交的数据
# print(request.POST) # 取得所有 POST 过来的数据
email = request.POST.get("email", None)
pwd = request.POST.get("pwd", None)
print(email, pwd)
# 判断是否登录成功
if email == '1111@qq.com' and pwd == 'test':
return HttpResponse("登录成功!")
else:
return HttpResponse("登录失败!") # 保存路径和函数的对应关系
urlpatterns = [
url(r'^login/', login),
url(r'check/', check),
]
输入错误的

输入正确的

将 login 函数和 check 函数合并,根据请求方式来执行相关的操作
# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR" from django.conf.urls import url
from django.contrib import admin
from django.shortcuts import HttpResponse, render, redirect def login(request):
if request.method == "GET": # 这里是要大写的
return render(request, "login.html")
if request.method == "POST":
email = request.POST.get("email", None)
pwd = request.POST.get("pwd", None)
print(email, pwd)
if email == '1111@qq.com' and pwd == 'test':
return HttpResponse("登录成功!")
else:
return HttpResponse("登录失败!") # 保存路径和函数的对应关系
urlpatterns = [
url(r'^login/', login),
]
login.html 中的 action 地址也要修改

可以置空也可以写上 /login/,置空就表示当前目录
优化 login 函数
def login(request):
if request.method == "POST":
email = request.POST.get("email", None)
pwd = request.POST.get("pwd", None)
print(email, pwd)
if email == '1111@qq.com' and pwd == 'test':
return HttpResponse("登录成功!")
return render(request, "login.html")
使用 render 添加错误提示
在 login.html 中添加一句话

{{ error }} 为占位符
login 函数
def login(request):
error_msg = ""
if request.method == "POST":
email = request.POST.get("email", None)
pwd = request.POST.get("pwd", None)
print(email, pwd)
if email == '1111@qq.com' and pwd == 'test':
return HttpResponse("登录成功!")
else:
error_msg = "邮箱或密码错误"
return render(request, "login.html", {"error": error_msg})
登录时输入错误的邮箱或者密码

使用 redirect 实现登录成功后的跳转
urls.py
# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR" from django.conf.urls import url
from django.shortcuts import HttpResponse, render, redirect def login(request):
error_msg = ""
if request.method == "POST":
email = request.POST.get("email", None)
pwd = request.POST.get("pwd", None)
print(email, pwd)
if email == '1111@qq.com' and pwd == 'test':
return redirect("http://www.baidu.com")
else:
error_msg = "邮箱或密码错误"
return render(request, "login.html", {"error": error_msg}) # 保存路径和函数的对应关系
urlpatterns = [
url(r'^login/', login),
]
登录成功后将跳转到百度
Python - Django - 登录页面的更多相关文章
- python Django注册页面显示头像
python Django注册页面显示头像(views) def register(request): ''' 注册 :param request: :return: ''' if request.m ...
- python web框架 Django 登录页面
在django 项目下 创建一个templates 放模板的文件夹 html文件都放在这里 在里面写一个login.html 登录页面 urls.py 加上 login 对应关系 from djang ...
- django登录页面优化
环境准备 1.python3.6 2.django2.0+ 3.bootstrap3 后台代码 #创建login_check视图函数,用来处理登录 def login_action(request): ...
- Django 登录页面重定向
转自:http://blog.chedushi.com/archives/3484 登陆和注销操作在网页编程上很常见,这两个操作经常需要在操作成功以后转入发出请求的页面. 比如用户正在浏览一篇文章,发 ...
- Python django 404页面配置和debug=false 静态文件配置 django版本1.10.5
django设置404页面 1.设置settings文件 DEBUG = False ALLOWED_HOSTS = ['127.0.0.1', 'localhost']或者 ALLOWED_HOST ...
- python&django 实现页面中关联查询小功能(中级篇)
目的 组合搜索实现如下图功能 知识点 1.使用自定义标签模板(templatetags) 实现 models.py 和 views.py和初级篇一样 重点如下:在app01目录下创建templatet ...
- python&django 实现页面中关联查询小功能(基础篇)
效果 实现效果图如下,根据过滤条件查询相关信息. 知识点 1.配置URL,在路由中使用正则表达式 2.过滤查询 代码 setting.py from django.contrib import adm ...
- django登录页面设计:
urls: """day42 URL Configuration The `urlpatterns` list routes URLs to views. For mor ...
- Python Django CMDB项目实战之-2创建APP、建模(models.py)、数据库同步、高级URL、前端页面展示数据库中数据
基于之前的项目代码来编写 Python Django CMDB项目实战之-1如何开启一个Django-并设置base页index页文章页面 现在我们修改一个文章列表是从数据库中获取数据, 下面我们就需 ...
随机推荐
- HDU 3488
http://acm.hdu.edu.cn/showproblem.php?pid=3488 原来写过的一道题,今天重新看费用流又做了一遍 题意:给一个图,求环的并(权值和最小) 思路:每个点只能走一 ...
- HP LoadRunner 12.02 Tutorial T7177-88037教程独家中文版
HP LoadRunner 12.02 Tutorial T7177-88037教程独家中文版 Tylan独家呕血翻译 转载请注明出自“天外归云”的博客园 Welcome to the LoadRun ...
- S3TC IAP15F2K61S2点亮一个发光二极管keil和stc-isp软件操作
1.安装破解软件 2.打开STC-ISP,找到头文件,选择保存文件 3.找到keil的安装目录,keil/C51/INC 并保存 4.在桌面新建文件夹 5.打开keil 6.找到在桌面上新建的文件夹 ...
- C条件编译
#include <stdio.h> void main() { #ifdef AAA printf("find AAA defined\n"); #else prin ...
- MySQL删除超大表操作
======================================================================== 问题原因 通常情况下,会使用innodb_file_p ...
- Msmq设计文档(赋源代码)
Msmq设计文档(赋源代码) Msmq设计文档 文件状态: [√] 草稿 [ ] 正式发布 [ ] 正在修改 文件标识: ECI-MSMQ v01 当前版本: 0.5 作 者: ...
- hadoop之 参数调优
一. hdfs-site.xml 配置文件 1. dfs.blocksize 参数:hadoop文件块大小描述:新文件的默认块大小,以字节为单位,默认 134217728 字节.可以使用以下后缀(大小 ...
- logging 的配置和使用
logging 的配置和使用 reference : logging cookbook logging HOWTO 测试源码,example import logging nt = 'xwei' # ...
- 如何在MFC DLL中向C#类发送消息
如何在MFC DLL中向C#类发送消息 一. 引言 由于Windows Message才是Windows平台的通用数据流通格式,故在跨语言传输数据时,Message是一个不错的选择,本文档将描述如何在 ...
- 深入理解ASP.NET MVC(2)
系列目录 请求是如何进入MVC框架的(inbound) 当一个URL请求到来时,系统调用一个注册的IHttpModules:UrlRoutingModule,它将完成如下工作: 一.在RouteTab ...