django150,django笔记

  django150,django笔记

  学习笔记,仅供参考。

  文章目录Web请求验证用户验证验证用户登录用户注销举个例子

  Web请求身份验证

  django . contrib . authimportauthenticate、登录、注销的相关函数

  认证用户认证

  函数用法authenticate(username= username ,password= original password )这个函数可以验证用户名和密码是否合法,合法则返回用户模型类的对象,不合法则不返回。

  来自django.contrib.authimport的示例官方身份验证

  用户=认证(用户名=约翰,密码=秘密)

  如果用户不是无:

  #已认证

  否则:

  #身份验证失败在这个函数中,它不仅检查我们输入的用户名和密码是否与存储的相匹配,还检查id_active是否为True。

  用户登录

  使用函数login(请求,用户)

  #user为用户模型类创建的用户对象。

  #请求是HttpRequest对象。这个方法使用Django的会话框架来保存用户在会话中的信息。

  来自django.contrib.authimport验证、登录的示例

  def login_view(请求):

  用户名=请求。帖子[用户名]

  密码=请求。发布[密码]

  用户=验证(请求,用户名=用户名,密码=密码)

  如果用户不是无:

  登录(请求,用户)

  #用户信息保存在会话中

  #重新设计登录成功页面。

  否则:

  #返回无效的登录信息

  用户注销注销

  函数注销(请求)通过django.contrib.auth.login()登录的用户可以使用django.contrib.auth.logout()注销

  django.contrib.authimport注销示例

  def logout_view(请求):

  注销(请求)

  例如

  举个例子1。

  现在,我们使用admin管理员帐户来演示用户验证、用户登录和用户注销。

  在myuser应用程序下的views.py模块中,我们为用户认证、用户登录和用户注销创建了两个视图处理函数:

  从django.shortcuts导入渲染

  从django.http导入HttpResponse

  从django.contrib.auth导入模型

  从django.contrib.auth导入验证、登录、注销

  #在此创建您的观点。

  定义我的登录(请求):

  if request.method==GET :

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

  elif request.method==POST :

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

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

  尝试:

  用户=认证(用户名=用户名,

  密码=密码)

  如果用户不是无:

  登录(请求,用户)

  # print(请求.会话)

  返回HttpResponse(登录成功.)

  否则:

  返回HttpResponse(登录失败.)

  除了:

  返回HttpResponse(没有这样的用户.)

  定义我的注销(请求):

  # print(我的登录正在运行.)

  注销(请求)

  返回HttpResponse(注销.)

  在myuser应用程序下的urls.py模块中,我们创建了两条路由:

  从django.urls导入re_path

  从。导入视图

  urlpatterns=[

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

  re_path(r^logout/$,views.mylogout),

  ]

  现在,我们向admin数据库后台管理系统http://127.0.0.1:8000/admin/:

  出现登录页面,也就是说,目前我们还没有登录管理员账号。

  现在,我们向http://127 . 0 . 0 . 1:8000/my user/log in/发出请求并登录:

  成功登录后,让我们刷新后台管理系统的admin数据库:

  我们发现我们已经登录了!这是因为在我们使用登录功能登录后,我们的帐户信息会保存在会话中。此时,我们处于登录状态。

  现在,我们发起对http://127 . 0 . 0 . 1:8000/my user/logout/的访问,并刷新admin数据库后台管理系统:

  我们发现我们的管理员帐户已被注销。

  举个例子2。

  现在,我们基于上一个示例的代码编写一个注册接口。

  首先,我们在myuser应用程序的urls.py文件中添加1条路由:

  从django.urls导入re_path

  从。导入视图

  urlpatterns=[

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

  re_path(r^logout/$,views.mylogout),

  re_path(r^reg/$,views.myreg),

  ]在myuser应用程序的views.py模块中,添加一个视图函数:

  def myreg(请求):

  if request.method==GET :

  return render(请求, myuser/register.html )

  elif request.method==POST :

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

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

  #这里就不做用户认证了。

  尝试:

  用户=模型。用户.对象.创建用户(

  用户名=用户名,

  密码=密码

  )

  user.save()

  返回HttpResponse(注册成功.)

  除了:

  返回HttpResponse(注册失败.)现在,我们向http://127 . 0 . 0 . 1:8000/my user/reg/提出请求,并填写注册信息:

  点击注册:

  检查mybookstore数据库中的auth_user数据表:

  mysql select id,用户名,邮箱,来自auth_user的is _ superuser

  - - - -

   id 用户名电子邮件 is _超级用户

  - - - -

   1 山羊主教 goatbishop@gmail.com 1

   2 黑山羊 0

  - - - -

  一组2行(0.01秒)。大家可以看到,我们的数据表中多了一个普通用户的账户记录。需要注意的是,普通用户无法登录admin数据库后台管理界面。

  转载请联系作者获得转载授权,否则将追究法律责任。

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

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