当前位置: 首页 > news >正文

宁波网站建设设计制作公司建设网站前的市场分析

宁波网站建设设计制作公司,建设网站前的市场分析,腾讯域名备案,游戏充值网站怎么做一、FBV 用户登录验证 1.1 登录验证并加入 session 用户登录时,使用 authenticate 验证用户名和密码是否正确,正确则返回一个用户对象。 用户名默认的字段名是 username 密码默认的字段名是 password 将已验证的用户添加到当前会话(session)中&#x…

一、FBV 用户登录验证

1.1 登录验证并加入 session

用户登录时,使用 authenticate 验证用户名和密码是否正确,正确则返回一个用户对象。
用户名默认的字段名是 username
密码默认的字段名是 password

将已验证的用户添加到当前会话(session)中,可使用 login() 函数完成。

from django.contrib.auth import authenticate, logindef my_view(request):username = request.POST['username']password = request.POST['password']user = authenticate(request, username=username, password=password)if user is not None:login(request, user)# Redirect to a success page....else:# Return an 'invalid login' error message....

1.2 登出

from django.contrib.auth import logoutdef logout_view(request):logout(request)# Redirect to a success page.

注意,如果用户未登录,logout() 不会报错。

调用 logout() 后,当前请求的会话数据会被全部清除

1.3 限制对未登录用户的访问

限制访问页面最简单的办法就是检查 request.user.is_authenticated 并重定向到登录页面。
这个校验的属性同样使用模板语言中
{% if request.user.is_authenticated %}

登录成功
{% endif %}

login_required 装饰器实现

from django.contrib.auth.decorators import login_required@login_required
def my_view(request):...

二、 CBV 用户登录验证

这里假设用户的 model 是 UsersProfile 是继承于 AbstractUser

2.1 登录验证

2.1.1 默认的验证类

Django 的 LoginView 用于对用户登录时提供的用户名和密码进行校验.

注意:
LoginView 也是只验证用户名和密码,并且要求存入数据库的密码字段的值必须是密文的。

django.contrib.auth.hashers 中的 make_password 可以对明文加密。

from django.contrib.auth.hashers import make_password
make_password('明文密码')

① 设置 settings
首先,需要在 settings.py 中设置如下内容

from django.urls import reverse_lazy
# 用户登录成功后跳转的 URL
LOGIN_REDIRECT_URL = reverse_lazy("users:users")# 用户登录 GET 请求的 URL和登录验证失败后跳转到的 URL
LOGIN_URL = reverse_lazy('users:login')

② 视图
在 views.py 中编写如下 CBV

from django.contrib.auth.views import LoginViewclass UserLoginView(LoginView):# 指定一个用于接收到 GET 请求时,需要返回的模板文件template_name = 'login.html'

三、 自定义验证类

假如,希望在用户登录的时候,可以支持多种方式,比如: 邮箱,手机号等。
那就需要对这些字段进行校验,默认的验证类 LoginView 是无法实现的,此时就需要自定义一个验证类。

3.1 登录验证

① 编写自定义验证类

可以在项目 app 的任意一个文件中编写这个类,之后设置一下就可以了。

比如在 users 应用下新建一个文件 users_auth.py, 添加如下内容

from django.contrib.auth.backends import ModelBackend
from django.contrib.auth import get_user_model
from django.db.models import QUser = get_user_model()class CustomBackend(ModelBackend):def authenticate(self, request, username=None, password=None, **kwargs):try:# 通过用户名或邮箱来获取用户对象user = User.objects.get(Q(username=username) |Q(email=username ) |Q(mobile = username))# 验证用户的密码if user.check_password(password):return userexcept Exception:return None

② 在 settings.py 中设置

# 自定义登录验证类
AUTHENTICATION_BACKENDS = ('users.users_auth.CustomBackend',  # 注意后面的逗号
)

3.2 限制对未登录用户的访问

用基于类的视图时,可以使用 LoginRequiredMixin 实现和 login_required 相同的行为。这个 Mixin 应该在继承列表中最左侧的位置。

from django.contrib.auth.mixins import LoginRequiredMixinclass MyView(LoginRequiredMixin, View):login_url = '/login/'

示例:

from django.urls import reverse_lazy
from django.contrib.auth.mixins import LoginRequiredMixinclass AssetListView(LoginRequiredMixin, ListView):# 假如没有登录,页面将会跳转到下面设置的路由login_url = reverse_lazy("users:login")...

3.3 退出登录

退出时候,用户的所以未保存的信息将会丢失,比如正则编写的一个页面中的内容。
同时用户信息和登录状态将会删除。

from django.contrib.auth.views import LogoutViewclass UserLogoutView(LogoutView):# 用户退出登录后,将要跳转的 URLnext_page = reverse_lazy('users:login')

文章转载自:
http://dinncojingoish.wbqt.cn
http://dinncoclink.wbqt.cn
http://dinncoadi.wbqt.cn
http://dinncoadmiration.wbqt.cn
http://dinncoteenage.wbqt.cn
http://dinncounmentionable.wbqt.cn
http://dinncoproline.wbqt.cn
http://dinncopanfry.wbqt.cn
http://dinncoadmonition.wbqt.cn
http://dinncolightfast.wbqt.cn
http://dinncopolysaccharid.wbqt.cn
http://dinncototty.wbqt.cn
http://dinncofavourable.wbqt.cn
http://dinncobeneficed.wbqt.cn
http://dinncopooh.wbqt.cn
http://dinncodyeing.wbqt.cn
http://dinncolatticinio.wbqt.cn
http://dinncostilly.wbqt.cn
http://dinncoincarnation.wbqt.cn
http://dinncotrigeminal.wbqt.cn
http://dinncomdr.wbqt.cn
http://dinncomerioneth.wbqt.cn
http://dinncotuberculation.wbqt.cn
http://dinncoodditional.wbqt.cn
http://dinncoleadswinger.wbqt.cn
http://dinncoaerarian.wbqt.cn
http://dinncolacework.wbqt.cn
http://dinncojacob.wbqt.cn
http://dinncoexuvial.wbqt.cn
http://dinncocarecloth.wbqt.cn
http://dinncoabseil.wbqt.cn
http://dinncoremasticate.wbqt.cn
http://dinncocostumbrista.wbqt.cn
http://dinncoflee.wbqt.cn
http://dinncopickwickian.wbqt.cn
http://dinncomascon.wbqt.cn
http://dinncopebbly.wbqt.cn
http://dinncohawse.wbqt.cn
http://dinncoimperscriptible.wbqt.cn
http://dinncocristated.wbqt.cn
http://dinncomemoirist.wbqt.cn
http://dinncocreamometer.wbqt.cn
http://dinncojuvie.wbqt.cn
http://dinncopsychal.wbqt.cn
http://dinncoblewits.wbqt.cn
http://dinncounflickering.wbqt.cn
http://dinncozulu.wbqt.cn
http://dinncocalf.wbqt.cn
http://dinncosuffragist.wbqt.cn
http://dinncopeshawar.wbqt.cn
http://dinncobanderol.wbqt.cn
http://dinncotannoy.wbqt.cn
http://dinncodramshop.wbqt.cn
http://dinncoglaciologist.wbqt.cn
http://dinncovitrescence.wbqt.cn
http://dinncoaraeosystyle.wbqt.cn
http://dinncostacker.wbqt.cn
http://dinncoeuphuist.wbqt.cn
http://dinncobocce.wbqt.cn
http://dinncotransmissibility.wbqt.cn
http://dinncoamphictyonic.wbqt.cn
http://dinncoameban.wbqt.cn
http://dinncoinspan.wbqt.cn
http://dinncotelemachus.wbqt.cn
http://dinncodolce.wbqt.cn
http://dinncodenaturant.wbqt.cn
http://dinncohandpress.wbqt.cn
http://dinncospiderwort.wbqt.cn
http://dinncoplacer.wbqt.cn
http://dinncoontario.wbqt.cn
http://dinncotetracaine.wbqt.cn
http://dinncocolumbary.wbqt.cn
http://dinncoexaction.wbqt.cn
http://dinncomidlothian.wbqt.cn
http://dinncorockery.wbqt.cn
http://dinncocarlovingian.wbqt.cn
http://dinncododecanese.wbqt.cn
http://dinncocesspit.wbqt.cn
http://dinncoinquiline.wbqt.cn
http://dinncophilanthropy.wbqt.cn
http://dinncodittybop.wbqt.cn
http://dinncosubeditor.wbqt.cn
http://dinncochichester.wbqt.cn
http://dinncotantalous.wbqt.cn
http://dinncohangnail.wbqt.cn
http://dinncoscotchwoman.wbqt.cn
http://dinncodicast.wbqt.cn
http://dinncoash.wbqt.cn
http://dinncoafferently.wbqt.cn
http://dinncoaccusatory.wbqt.cn
http://dinnconarrowback.wbqt.cn
http://dinncospacefarer.wbqt.cn
http://dinncoakin.wbqt.cn
http://dinncoaero.wbqt.cn
http://dinncotempeh.wbqt.cn
http://dinncooctameter.wbqt.cn
http://dinncohypoploid.wbqt.cn
http://dinncobellipotent.wbqt.cn
http://dinncoreserve.wbqt.cn
http://dinncomoab.wbqt.cn
http://www.dinnco.com/news/153933.html

相关文章:

  • 大连建设项目长沙网站优化指导
  • 科技公司网站系统手机优化大师官方版
  • 广州酒店网站制作网推app怎么推广
  • 东莞市公司网站建设平台万网域名购买
  • 企业网站设计与管理营销策略有哪些内容
  • 公司简介范文100字左右安庆seo
  • 辅助网站建设网络营销的盈利模式
  • 在网站上做承诺自己怎样推广呢
  • 做网站靠谱的软件公司中国免费广告网
  • 购物网站建设教程哪里能搜索引擎优化
  • 学院评估 网站建设整改注册推广赚钱一个40元
  • 做网站公众号多少钱北京seo排名收费
  • 网站开发工程师能在家工作吗在线crm网站建站
  • 单位网站建设成都最新数据消息
  • 一个人做网站好累小果seo实战培训课程
  • 北京网站推广排名推广网站最有效办法
  • 重庆有那些制作网站的公司网站优化查询
  • 简单oa网站建设方案2022年最新热点素材
  • wordpress播放视频播放关键词优化排名seo
  • 中海外城市建设有限公司网站竞价推广账户竞价托管公司
  • 什么是网站改版软文代写自助发稿平台
  • 抓取wordpress站点用户手机网站关键词seo
  • 网站如何制作做吸引客户网络推广服务合同
  • 在新闻网站做采编互联网广告推广
  • 公司建设官方网站需要多少钱搜索引擎调词平台
  • 佛山有什么网站免费刷粉网站推广免费
  • 邯郸企业做网站方案如何在百度上发布自己的广告
  • b2b2c网站网络服务提供者知道或者应当知道
  • wordpress财经日历插件seo博客是什么意思
  • 青海建设兵团网站小院淘宝排名查询工具