django笔记,django404

  django笔记,django404

  学习笔记,仅供参考

  用姜戈自带的用户模型类进行模拟登录

  基于上个博客中学习的用户认证系统,我们再用姜戈自带的用户模型类,进行模拟登录(模拟登录的意思就是没有真正的登录,不涉及会议和饼干).

  第一步

  创建新的APP,并添加路由信息

  我们在我的网站_书店项目下创建一个APP,叫我的用户:

  python manage.py startapp myuser在settings.py中的已安装的应用程序列表中添加我的用户应用:

  INSTALLED_APPS=[

   django.contrib.admin ,

   django.contrib.auth ,

   django.contrib.contenttypes ,

   django.contrib.sessions ,

   django.contrib.messages ,

   django.contrib.staticfiles ,

  书店,

  用户信息,

  "我的用户",

  ]我们在我的用户应用中创建一个新的urls.py文件,并敲入如下代码:

  从django.urls导入重新路径

  从。导入视图

  urlpatterns=[

  re_path(r^login/$,views.mylogin),

  ]在主urls.py中,添加我的用户应用的路由:

  从django.urls导入重新路径

  来自姜戈. contrib导入管理

  从django.conf.urls导入包括

  从。导入视图

  urlpatterns=[

  re_path(r^admin/,管理网站网址),

  re_path(r^myuser/,包含( myuser.urls ),

  ]

  第二步

  新建模板文件夹模板/我的用户,创建登录页面的模板文件,并创建视图函数注册

  在我的用户应用下新建一个模板文件夹模板,再建立一个我的用户文件夹,在里面创建2个模板文件:

  login.html:

  !声明文档类型

  html lang=en

  头

  meta charset=UTF-8

  标题登陆/标题

  /头

  身体

  表单操作=/myuser/login/方法=POST

  {% csrf_token %}

  差异

  标签用户名/标签

  输入类型=文本名称=用户名

  值={{用户名}}

  /div

  差异

  标签密码/标签

  输入类型=密码名称=密码

  /div

  差异

  =id_remember 的标签记住密码/标签

  输入类型=复选框名称=记住id= id _记住

  值=1

  /div

  差异

  输入类型=提交值=登陆

  /div

  /表单

  /body

  /html

  在我的用户应用下的views.py模块中,我们创建新的视图函数我的登录:

  定义我的登录(请求):

  if request.method==GET :

  返回render(request, myuser/login.html ,locals())

  elif request.method==POST :

  用户名=请求. POST.get(用户名,)

  密码=请求POST.get(password ,)

  尝试:

  用户=模型User.objects.get(用户名=用户名)

  if user.check_password(密码):

  返回HttpResponse(登陆成功.)

  否则:

  返回HttpResponse(登录失败.)

  除了:

  返回HttpResponse(没有此用户.)在这个视图函数中,我们不仅检查了用户是否存在,还检测了在用户存在条件下输入的密码是否正确。

  注意,这里的模特User.objects.get(用户名=用户名)是从关系型数据库的我的书店数据库的授权用户数据表中提取的数据,我们来简单看一下这个数据表中的数据:

  mysql选择id,用户名,邮箱,来自授权用户的is _超级用户

  - - - -

   id 用户名电子邮件是\超级用户

  - - - -

   1 山羊主教 goatbishop@gmail.com 1

  - - - -

  集合中的一行(0.00秒)

  第三步

  进行模拟登录

  现在,我们开启服务,并向http://127 .0 .0 .1:8000/我的用户/登录发起请求,并填入用户名和密码:

  点击登录:

  显示登录失败…你还好吗?

  不应该啊,难道是我记错密码了?

  我重新输入一个密码,结果登录成功了,果然是我记错密码了:

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: