Django中的用户与Authentication

这几天一直在看Django中的Authentication,自己尝试着写了一个小型的Demo。

1 Demo流程图

注意:以上信息的submit均使用forms.Form

2 问题

2.1 无论登陆与否,index.html总是当作没登陆来显示

      个人猜测,模板页面上本来是没有默认的request变量的,因为我在用{{request.user}}测试的时候,页面上什么也没有,模板这种对null不报错而是静悄悄的略过的做法给找bug还是带来了一定的难度。解决方案是在render_to_response中的加入context_instance=RequestContext(request),settings.py中加入

TEMPLATE_CONTEXT_PROCESSORS = ( 
    "django.contrib.auth.context_processors.auth", 
    "django.core.context_processors.request"  
) 。

2.2 登陆时老是失败,一步一步的debug进去,发现是密码不可用(is_password_usable)

      原因是调用create_user时,参数直接写了(username,password),调试的时候才发现原来create_user的第二个参数是email,真是无语了,解决方案自然是明确的标明谁是谁:create_user(username=username,password=password)

3 总结

        由于任务来的突然,对于django只能是现学现卖,过程可想而知,摸着石头过河深一脚浅一脚的在所难免,而且总有一些你想象不到的问题像水底的石头一样突然硌你一下。究其原因还是知识结构不够系统,学习django还有很多路要走。

        调试bug的时候估计大家的心情都是一样的吧,刚开始是好奇,慢慢的就开始烦躁,随着心情的变糟,智商也会逐渐走低。每当此时,我就想起一句经典的话:一遍又—遍做同一件事,却期望有不同的结果。急躁还是要不得的,急于求成反而会增加时间成本,以后再遇到bug,还是得用冷静和理智来面对。


本文代码:https://github.com/leon27/webdev/tree/master/UserDemo



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值