django学习笔记之登录
来源:互联网 发布:spring 源码书籍 编辑:程序博客网 时间:2024/06/05 06:09
在测试admin成功之后我开始写web的第一个功能,登录。顺序如下:
1.首先在url里面添加登录,我把登录的文件放在account.py下面,所以url写为:url(r'^accounts/login/$', 'sys_pm.account.userlogin',name='userlogin'),这里的name参数为此条url的别名,当你想引用这条url时候,只需要action={% url “userlogin” %}这样写就可以调用到相应的方法。
2.当定义好url之后,我开始实现userlogin的方法,此段代码大意就是当,代码如下:
def userlogin(request):
if request.method=="POST":
form =LoginForm(request=request,data=request.POST)
if form.is_valid():
return HttpResponseRedirect('/')
else:
return render_to_response('accounts/login.html',{
"form":form},context_instance=RequestContext(request))
else:
form =LoginForm()
if request.user.is_authenticated():
return HttpResponseRedirect('/')
return render_to_response('accounts/login.html',context_instance=RequestContext(request))
这里注释几点:
1)关于get和post方法简单说一下,get用于获取或查询信息,post一般用于更新资源,所以有动作的使用post,查询等的使用get。
2) LoginForm是django表单类里的一个表单,对于此表单类接下来会有讨论。
3)HttpResponseRedirect重定向到新的url。from django.http import HttpResponseRedirect 。
4)request.user.is_authenticated()这个参数是user类里验证登录的函数
3.下面看一下对应的表单,重写了如下几个函数,关于usernamefield和passwordfield是对现有类型的的一次封装,关于表单,这里说的比较详细http://www.douban.com/note/296298497/?type=like,细致需要看官方文档
class LoginForm(forms.Form):
username=UsernameField(required=True,max_length=50,min_length=6)
password=PasswordField(required=True,max_length=50,min_length=6)
def __init__(self,request=None,*args,**kwargs):
def clean(self):
def get_user_id(self):
def get_user(self):
4.对于现有类型的封装其实很简单,这里只是根据需求去显示一些提示信息和做了一些优化工作。validator是对有效性的控制,对于username的实现一起写在下面。
class UsernameField(CharField):
default_error_messages = {
'invalid':u'账号由字母数字下划线组成',
'required':u'账号由字母数字下划线组成',
}
default_validators = [username]
def clean(self,value):
value = self.to_python(value).strip()
return super(UsernameField, self).clean(value)
username_re = re.compile(r'^[\w]+?$')
username = RegexValidator(username_re,u"账号由字母数字下划线组成的字符串最少为6位",'invalid')
- django学习笔记之登录
- Django学习笔记之【Django初识】 .
- Django学习笔记之简介
- Django学习笔记之二
- Django学习笔记之【Linux下Django的安装】
- Django学习笔记之【Django与数据库交互】
- Django学习笔记之【应用和数据模型】
- Django学习笔记之【Forms篇】
- Django学习笔记之博客开发(一)
- Django学习笔记之博客开发(二)
- Django学习笔记之博客开发(三)
- Django之Html标签学习笔记
- Django学习笔记之——Models
- Django 学习笔记之 Class-Based-View
- Django学习笔记-初识Django
- Linux学习笔记之用户登录
- Linux学习笔记(四)之用户登录
- Struts2学习笔记之简单登录
- 通过IP地址和子网掩码计算相关地址
- 即时通讯 - 如何保证消息内容不被监听
- Android Studio 快捷键整理
- 设计模式六大原则
- 南邮 OJ 1203 最多约数问题
- django学习笔记之登录
- Linux 任务控制的几个技巧( &, [ctrl]-z, jobs, fg, bg, kill)
- Aerospike NoSQL 数据库介绍
- URI ENCODING
- java实现的小工具并用bat文件执行该工具
- Unbuntu下使用bison编写文本解释器的方法
- 泛型集合排序,根据实体类对象的某个属性排序
- Openstack Juno Ceilometer安装后ceilometer-api无法启动
- 数据中心TCP优化:同时满足低时延和高吞吐量