博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Djang 用户登录
阅读量:5124 次
发布时间:2019-06-13

本文共 1708 字,大约阅读时间需要 5 分钟。

用户登录:

1、表单提交
登录页面输入表单数据进行form提交(点击自动提交;自己编写doLogin()方法提交其中doLogin可以前台进行校验)
2、do_login后台业务逻辑处理:
a) 获取参数(post获取)
b) 基本参数校验,虽然前台会有校验,但后台也要有,避免跳过前台直接访问后台数据
c_补充) 先判断session中是否包含有login_user_name,如果有代表已经登录,直接跳转到首页
c) 根据userName和password查询数据库
d) 校验用户是否存在
e) 将用户的username存入session
f) 返回跳转到首页

修改:

1)跳转登录的view,需要加入判断是否已登录
2)首页的登录按钮,要进行验证
使用ajax进行登录:张森

# 首页

def welcome(request):
se = request.session
print(se)
login_user_name = se.get('login_user_name')
return render(request, "welcome.html", {'login_user_name': login_user_name})

# 登录页面

def login(request):
# 先判断是否登录,如果登录直接跳转到首页
if request.session.get('login_user_name'):
return redirect("/user/welcome")
return render(request, "login.html")

# 登录的业务逻辑
def do_login(request):
# 获取登录用户名、密码
userName = request.POST.get('userName')
password = request.POST.get('password')
# 基本参数校验

if not userName or len(userName.strip()) == 0:

return render(request, "login.html", {'message': '请输入用户名'})

if not password:

return render(request, "login.html", {'message': '请输入密码', 'userName': userName})
# 先判断是否登录,如果登录直接跳转到首页
if request.session.get('login_user_name'):
return redirect("/user/welcome")
# 数据库进行匹配
user = UserInfo.objects.filter(userName=userName.strip()).filter(password=password)
if not user:
return render(request, "login.html", {'message': '用户名和密码错误!',
'userName': userName, 'password':password})

# 成功就将用户名写入session

request.session['login_user_name'] = userName

# 设置过期时间

# 浏览器关闭失效
request.session.set_expiry(0)

return redirect("/user/welcome")

 

Session:如果是同一个浏览器打开的页面,session的key相同,那么后面写入的session会覆盖前面,如果是不同浏览器就不会冲突

https://docs.djangoproject.com/en/2.0/ref/contrib/auth/#module-django.contrib.auth.signals (Django的自带登录)

转载于:https://www.cnblogs.com/Minlwen/p/10488754.html

你可能感兴趣的文章
Flask 系列之 SQLAlchemy
查看>>
aboutMe
查看>>
【Debug】IAR在线调试时报错,Warning: Stack pointer is setup to incorrect alignmentStack,芯片使用STM32F103ZET6...
查看>>
一句话说清分布式锁,进程锁,线程锁
查看>>
python常用函数
查看>>
FastDFS使用
查看>>
服务器解析请求的基本原理
查看>>
[HDU3683 Gomoku]
查看>>
【工具相关】iOS-Reveal的使用
查看>>
数据库3
查看>>
存储分类
查看>>
下一代操作系统与软件
查看>>
【iOS越狱开发】如何将应用打包成.ipa文件
查看>>
[NOIP2013提高组] CODEVS 3287 火车运输(MST+LCA)
查看>>
Yii2 Lesson - 03 Forms in Yii
查看>>
Python IO模型
查看>>
Ugly Windows
查看>>
DataGridView的行的字体颜色变化
查看>>
Java再学习——关于ConcurrentHashMap
查看>>
如何处理Win10电脑黑屏后出现代码0xc0000225的错误?
查看>>