Django实战(22):处理登录和注销

Markdown排版实战指南:从基础语法到工具链全解析 在技术写作与文档协作中,Markdown凭借轻量语法与跨平台特性成为开发者首选,但许多人在追求高效书写时往往忽略排版规范。所谓好的排版,并非堆砌样式,而是通过标题层级、列表逻辑、表格对齐、代码块标注等语义化结构,降低读者的认知成本。从段落空行到图片路径管理,从Typora、VSCode等编辑器的差异化选择到PDF、Word转换工作流,每一处细节都直接影响文档的可读性与可维护性。本文基于大量工程实践,梳理了一套从理念到实操的Markdown排版方法论,涵盖常见坑点排查与工具链配置,适用于技术博客、项目READ 阅读详情

广告时段:转载请保留源地址:http://blog.youkuaiyun.com/thinkinside/article/details/7247171,并欢迎访问我的Django专栏:http://blog.youkuaiyun.com/column/details/django.html

前一节我们实现了用户管理,本节对用户登录和登出进行处理。由于我们已经引入了django.contrib.auth应用,用户的登录和登出处理变得非常简单。

我们已经可以在view函数中判断用户是否已经登录以及获取用户信息:
if request.user.is_authenticated():     #判断用户是否已登录
    user = request.user;          #获取已登录的用户
else:   
    user = request.user;          #非登录用户将返回AnonymousUser对象

 Django的User对象提供了一系列的属性和方法,其中password存储的是加密后的密码,is_staff记录用户是否有管理员权限,其他的属性可以参考官方文档。同时django.contrib.auth模块中提供了authenticate()、login()、logout()等函数,分别实现认证、登录、登出等功能。

Django还为我们提供了内置的处理login、logout的view函数,但是因为其提供的行为与我们这里要的不一样,所以还需要自己实现view函数。


我们使用bootstrap模板设计的布局中,在菜单栏已经放入了登录表单,如下图:

如上一节所述,我们希望只有登录后的用户才可以管理产品,所以在右上角输入用户名和密码并登录后,该处显示用户名和”注销“按钮,而页面重定向的产品管理的界面。

。而注销后再恢复成登录表单。



需求已经明确了,现在开始实现。对于url配置,由于login和logout功能应该属于整个project,而不是特定的app,所以在depot/urls.py中配置:

from depotapp.views import login_view,logout_view
urlpatterns = patterns('',
    ... ...
    (r'^accounts/login/$', login_view),
    (r'^accounts/logout/$', logout_view),
)

而我们的设计的界面中没有独立的登录、注销界面,所以view函数还是在depotapp的views.py中实现:

from django.contrib.auth import authenticate,login,logout

def login_view(request):    
    user = authenticate(username=request.POST['username'], password=request.POST['password'])
    if user is not None:
        login(request, user)	
        print request.user	
        return list_product(request)
    else:
        #验证失败,暂时不做处理
        return store_view(request)

def logout_view(request):
    logout(request)
    return store_view(request)

所有的界面都在base.html模板中,将base.html的topbar中原来登录表单的部分,改成如下的样子:

{% if request.user.is_authenticated %}
		<div class="pull-right">
			<a href=#>欢迎您:{{request.user}}</a>  
			<a class="btn danger small" href="{% url depotapp.views.logout_view %}">注销</a>
		</div>
{% else %}
          <form action="{% url depotapp.views.login_view %}" method='post' class="pull-right">
			{% csrf_token %}
            <input name='username' class="input-small" type="text" placeholder="用户名">
            <input name='password' class="input-small" type="password" placeholder="密码">
            <button class="btn" type="submit">登录</button>
          </form>
{% endif %}

所有的工作就完成了。


Django注册、登录、注销示例 Django注册、登录、注销示例 含源码 立即下载

相关推荐

django用户登录和注销的实现方法

主要介绍了django用户登录和注销的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

【Django】采用From,实现登录、注销功能

后台用户的登录和注销

meidongyan的博客 665

手把手教你用Alinx黑金开发板(Spartan-6)驱动ADF4351信号源(附Verilog SPI代码)

本文详细介绍了如何使用Alinx黑金开发板(Spartan-6 FPGA)驱动ADF4351信号源,包括硬件连接、Verilog SPI代码实现及系统调试。通过实战指南,帮助开发者快速掌握FPGA控制ADF4351芯片的技术,适用于射频信号源设计和学习应用。

weixin_30335575的博客 627

html网页if验证,基本.html无法访问{%ifuser.is_认证%}

在我的基本.htmluser.is_认证总是返回false。。。在我希望基本模板在“登录和注销”之间切换我们将不胜感激在基本.html在{% block leftsidebar %}{% if user.is_authenticated %}logout{% else %}Login{% endif %}{% endblock %} 在表单.py在^{pr2}$在视图.py在from django...

weixin_42394785的博客 448

【DAB收音机】DAB 认证介绍

DAB 认证ESTI 标准文档: ETSI 103461实际过认证时,需要根据产品的受众国家及区域,参考当地官方是否有国内认证协议。需要参考当地文档进行功能开发。例如:阿联酋地区用《UAE.S 5021 _ 2018.pdf》标准进行认证。ESTI 的DAB认证协议规定了家用和车载数字无线电的最低要求,及其对应的测试方法,是数字无线电认证标志规定的技术基础。本文以车载数字无线电接收器为例,进行部分DAB认证的介绍,详情请见官方文档。或联系博主获取DAB ESTI 103461的中文翻译资料。

qq_15271231的博客 1218

从零开始:EAS2+Elmo+Maxon电机调试全流程(含电流环优化技巧)

本文详细解析了从零开始搭建基于EAS2软件、Elmo驱动器和Maxon电机的运动控制系统的全流程。内容涵盖硬件连接规范、EAS2基础配置、核心的电流环模型辨识与手动优化技巧,以及速度环、位置环的搭建与调试策略,旨在帮助工程师构建稳定、高性能的伺服控制核心。

i0j1k2l3m的博客 502

Django登录注销视图

Django在身份验证框架中包含了一些你可以直接使用的表单和视图。在大多数情况下,可以使用默认的Django认证视图。Django在django.contrib.auth.views提供了以下基于类的视图来处理身份验证:LoginView:处理登录表单并登录用户LogoutView:注销用户Django提供了以下视图来处理密码修改:PasswordChangeView:修改用户密码PasswordChangeDoneView: 修改密码后重定向到成功视图。

旁门贰号 1598

PyTorch实战:用FGSM攻击MNIST分类器(附可视化对比)

本文通过PyTorch实战演示了如何使用FGSM对抗攻击方法攻击MNIST手写数字分类器。文章详细解析了FGSM攻击原理,提供了从环境搭建、模型准备到攻击实施、可视化对比的完整代码实战流程,并探讨了对抗样本的生成与模型鲁棒性评估。

3a9bq4r8t2y的博客 216

django 前端模板实现用户不同登录状态下显示不同欢迎信息(使用自带的认证系统)

<!-- is_authenticated是django封装的用户认证系统的函数,用于判断用户登录状态 --> <!-- 当登录时,user.is_authenticated返回的是True --> <!-- user对象代表当前用户,会随着view层的request传入模板中,可以直接使用 --> <!-- 如果用户已登录,显示欢迎您。。。 --&gt...

yutaixin的博客 1735

116、影像质量主观评价方法论:标准场景与专家判读

本文探讨了影像质量主观评价的方法论,强调标准场景构建和专家判读体系的重要性。作者基于15年行业经验指出,仅靠客观指标无法保证观感质量,提出四类标准场景(灰阶、肤色、纹理、动态)的构建原则和四种专家判读维度(通透性、干净度、自然感、流程化)。文章揭示了主观评价中的常见误区,包括光源单一性、个人判读偏差、显示设备影响等,并建议建立多专家交叉验证机制和主观评价数据库。最后强调主观评价是可标准化的专业技术,需要将人眼感知转化为可追溯的技术参数。

sundong_81的博客 38

【AI产品思路】用户旅程图与用户全生命周期:到底是什么关系?

用户旅程图(User Journey Map)和用户全生命周期(User Lifecycle)是两种不同的分析框架。用户旅程聚焦单次交易体验的完整过程(如浏览→下单→售后),关注触点、情绪和优化点;而用户生命周期则关注用户与平台的长期关系(从认知到流失),着重提升留存和LTV。两者互为补充:生命周期是时间维度的关系框架,旅程图是行为维度的体验路径。电商运营中,旅程优化改善单次体验,生命周期优化解决长期增长问题,二者结合才能实现体验提升与商业效率的双赢。

qq_25438419的博客 216

django实现用户的注册、登录、注销功能

django实现简单的登录、注册、注销功能。

一个持续学习的小趴菜。 2784

华为OD机试 - 城市聚集度(Python/JS/C/C++ 2025 A卷 200分)

华为OD机试 2025A卷题库疯狂收录中,刷题。

学Java,找哪吒 1129

django创建登录和注册,注销策略

django创建登录和注册,注销策略 第一步:创建应用 1 python manage.py startapp accounts 第二步:url规则添加 1 2 3 4 5 #用户的处理中心 url(r'^accounts/$','accounts.views.in

kerrygao的技术宅 622

SI案例分享--FPC(柔性电路板)信号仿真

设计高性能的柔性PCB时,由于采用了网格地的参考面构造,因此,需要按照特定的结构进行布局,才可以保证所需目标阻抗的稳定性,该结构的配置过程称为“Hatch Configuration”,合理的参数配置将有助于得到满意的设计效果。

一只豌豆象的博客 2825

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Django Session操作

Django基础之Session操作 0|11. 创建一个示例 1.1 第一步 首先创建一个django项目,创建app01, 连接数据库,做好准备工作。 然后在templates目录下创建两个html: login.html负责登录页面; backend页面代表后台页面。 1 <!DOCTYPE html> 2 <html lang="en"&...

雲泥有別 尘亦生辉 386

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

16 django用户认证组件

django用户认证组件 思考:   前一篇提到的seesion,当用户登录后会保存session。   浏览器再次访问会带上服务器返回的session:sessionid ---> 登录时随机生成的key   服务器拿到sessionid后去数据库匹配,匹配到后拿到一个字典数据:{a:b,c:d}   当数据有变化时,会更新某个值,如 c:d --> c:e ,那...

weixin_30603633的博客 497

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Django笔记教程:四、会话、注册、以及用户

这个部分,主要是看得django cookbook以及官方文档。cookie,session、注册 一直以来都是web开发的重要的组成部分。项目中有用到一些,所以还是记录下来,方便以后查阅。 HTTP被设计为”无状态”,每次请求都处于相同的空间中。 在一次请求和下一次请求之间没有任何状态保持,我们无法根据请求的任何方面(IP地址,用户代理等)来识别来自同一人的连续请求。首先,我们会从较低的层次

alvine008的专栏 5171

django 业务代码写哪儿_如何用django框架完整的写一个项目

实现目标及功能,增删改,并且实现搜索,分页,日期插件,删除提示,以及批量导入等功能软件版本:python3.5django1.11一 用pycharm创建一个项目,名字自定义二 编辑urls.py1 from django.conf.urls importurl, include2 from django.contrib importadmin3 from hnf importviews45 u...

weixin_28829173的博客 199

Django项目:CRM(客户关系管理系统)--50--41PerfectCRM实现全局账号密码修改

1 # gbacc_urls.py 2 # ————————38PerfectCRM实现全局账号登录注销———————— 3 from django.conf.urls import url 4 from gbacc import gbacc_views 5 urlpatterns = [ 6 url(r'^gbacc_login/', gba...

weixin_30602505的博客 236

如何用django框架完整的写一个项目

实现目标及功能,增删改,并且实现搜索,分页,日期插件,删除提示,以及批量导入等功能 软件版本: python3.5 django1.11 一 用pycharm创建一个项目,名字自定义 二 编辑urls.py 1 from django.conf.urls import url, include 2 from django.contrib import admin 3...

weixin_30653097的博客 605

基于python+django的个性化电影推荐系统设计与实现

本文研究基于协同过滤算法实现个性化电影推荐系统。系统采用B/S架构,使用Python开发推荐算法,结合Django框架和MySQL数据库实现。研究内容包括:(1)分析协同过滤算法及其在视频网站的应用;(2)改进算法以提高推荐准确性;(3)采用召回率和准确率评估推荐效果;(4)设计实现包含用户注册、登录、评分和推荐功能的完整系统。系统基于MovieLens数据集,通过用户评分数据计算相似度,提供基于用户和物品的两种推荐方式。实验结果表明该系统能有效为用户推荐感兴趣的电影,具有较好的实用价值。

毕业作品网站 5019
上一篇: GTD精要
下一篇: Django实战(23):权限控制
ThinkInside
博客等级 码龄19年 281粉丝 93原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值