环境:win10+mysql8.0+django2.0+bootstrap3.7源码已经上传至我的github,欢迎修改使用:django2.0登录系统最终显示结果:
设计的主要逻辑从以下几个方面来考虑:
1.登录:分为get与post两种情况,post即为提交请求,此时进行数据验证,使用django自带的抽象authentication类,使用login和logout类进行登入与登出。2.注册:填写信息,与models层相结合,将数据存入数据库。3.进行页面跳转。具体内容如下:
总目录如图,其中app--mysite的文件内容为:
这两个目录应该不需要解释,django的基本操作。不太清楚的话,可以看我专栏的其他文章。编写model层(models.py)
这里需要说明以下,我编写model层,并不是直接继承的model.Model,而是继承的django自带的登录系统中的AbstractUse类,这是django为了方便做登陆系统,而高度抽象出来的一个基类,查看源码可以发现,其中已经包括了username,password,email等字段,所以你只需要再编写你所需要的字段即可。
继续点击进入即可看见,每个记录的详细内容:
编写forms.py表单层:
注意,表单层使用widget来添加表单属性,继承django.forms类,即可使用。比如,如果你需要输入的是密码,那么,只需要在widget中加入forms.PassInput(attrs=({"class":""},{"id":""}))。编写视图层(views.py)
视图函数这里,有几点需要注意,一是,我使用的是django的通用类视图,也就是继承了dajngo.views.generic中的View,generic中还有许多其他的类,它们都是基于View的。
编写url.py
什么叫跨站点攻击呢?简单来说,就是跨站点请求伪造,当你登录一个网站时,会在你的浏览器上保存一个cookie,如果此时,你正好又去点击了一个不良网站,后台人员,便可以使用保存在你浏览器上的cooike以你的身份去做一些事情。那么dajngo如何来防止这种,情况呢?dajngo使用伪随机数来完成这个操作,使用起来很简单,只需要在表单只能加入{},如
领取专属 10元无门槛券
私享最新 技术干货