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

制作公众号网站开发今日足球比赛预测推荐分析

制作公众号网站开发,今日足球比赛预测推荐分析,设计美观网站有哪些,做数独的网站Django在身份验证框架中包含了一些你可以直接使用的表单和视图。在大多数情况下,可以使用默认的Django认证视图。 Django在django.contrib.auth.views提供了以下基于类的视图来处理身份验证: LoginView:处理登录表单并登录用户 LogoutView&a…

Django在身份验证框架中包含了一些你可以直接使用的表单和视图。在大多数情况下,可以使用默认的Django认证视图。

Django在django.contrib.auth.views提供了以下基于类的视图来处理身份验证:
LoginView:处理登录表单并登录用户
LogoutView:注销用户

Django提供了以下视图来处理密码修改:
PasswordChangeView:修改用户密码
PasswordChangeDoneView: 修改密码后重定向到成功视图

Django还包含以下视图来允许用户重置密码:

PasswordResetView:生成一个带令牌的一次性使用链接,并将其发送到用户的电子邮件账户。
PasswordResetDoneView:告诉用户一封包含重置密码链接的电子邮件已经发送给他们。
PasswordResetConfirmView:允许用户设置新密码 
PasswordResetCompleteView:用户重置密码成功后重定向到成功视图。

在创建带有用户帐户的网站时,上面列出的视图可以节省大量时间。

📌视图使用可以覆盖的默认值,例如要呈现的模板的位置,或者视图要使用的表单。

登录和注销视图

 构建登录和注销URL

编辑urls.py

from django.urls import path,include
from django.contrib.auth import views as auth_views
from . import viewsurlpatterns = [# path("login/",views.user_login,name='login'),path("login/",auth_views.LoginView.as_view(),name='login'),path("logout/",auth_views.LogoutView.as_view(),name='logout'),]

注释掉之前创建的user_login视图的URL模式,以使用Django认证框架的LoginView视图。我们还为LogoutView视图添加了一个URL模式。

关于account应用的基础代码,请查看Django身份验证初试-CSDN博客

django.contrib.admin模块包含一些用于管理站点的身份验证模板。account应用放在INSTALLED_APPS设置的顶部,这样Django就会默认使用我们的模板,而不是其他应用中定义的认证模板。

INSTALLED_APPS = ["django.contrib.admin",#...]

构建登录模版

📌在account应用程序的模板目录中创建一个新目录,并将其命名为registration。这是Django认证视图期望你的认证模板所在的默认路径。


在templates/registration目录下创建一个新文件,命名为login.html,并添加以下代码:

{% extends "base.html" %}
{% block title %}Log-in{% endblock %}
{% block content %}<h1>Log-in</h1>{% if form.errors %}<p>Your username and password didn't match.Please try again.</p>{% else %}<p>Please, use the following form to log-in:</p>{% endif %}<div class="login-form"><form action="{% url 'login' %}" method="post">{{ form.as_p }}{% csrf_token %}<input type="hidden" name="next" value="{{ next }}" /><p><input type="submit" value="Log-in"></p></form></div>
{% endblock %}
  • Django默认使用位于Django .contrib.auth.forms中的AuthenticationForm表单。
  • 此表单尝试对用户进行身份验证,如果登录不成功则会引发验证错误。
  • 使用{% if form.errors %}表单查找错误。
  • 这里添加了一个HTML标签INPUT ,提交名为next的变量的值。当在请求中传递next参数时,登录视图首先设置该变量。(比如:http://127.0.0.1:8000/account/login/?next=/account/)
  • next参数必须是URL,Django登录视图会在用户成功登录后将用户重新定向到给定的URL。

在templates/registration目录下创建logged_out.html模板

{% extends "base.html" %}
{% block title %}Logged out{% endblock %}
{% block content %}<h1>Logged out</h1><p>You have been successfully logged out. You can<a href="{% url 'login' %}">log-in again</a>.</p>
{% endblock %}

这是Django在用户退出后显示的模板。  

在为登录和注销视图添加了URL模式和模板之后,网站就准备好让用户使用Django认证视图登录了。

构建登录视图

创建一个新视图,以便在用户登录其帐户时显示仪表板。  
打开account应用程序的views.py文件,并向其中添加以下代码:

from django.shortcuts import render
from django.http import HttpResponse
from django.contrib.auth import authenticate,login
from .forms import LoginForm
from django.contrib.auth.decorators import login_required@login_required
def dashboard(request):return render(request,'account/dashboard.html',{'section':'dashboard'})
  • 使用身份验证框架的login_required装饰器来装饰视图。
  • login_required装饰器检查当前用户是否经过身份验证。
  • 如果用户被认证,执行装饰视图。如果用户没有经过身份验证,它将用户重定向到登录URL,并使用最初请求的URL名为next的GET参数。

📌使用section变量来跟踪用户正在浏览的站点部分。多个视图可能对应于同一个部分。这是定义每个视图对应的部分的一种简单方法。

现在需要为仪表板视图创建一个模板。在templates/account/目录下创建一个新文件,并命名为dashboard.html。

{% extends "base.html" %}
{% block title %}Dashboard{% endblock %}
{% block content %}<h1>Dashboard</h1><p>Welcome to your dashboard.</p>{% endblock %}

然后,在account应用程序的urls.py文件中为这个视图添加如下URL模式:

urlpatterns = [#...path("",views.dashboard, name='dashboard')
]

编辑项目的settings.py文件,使用的是之前在path()函数的name属性定义的URL模式的名称。

LOGIN_REDIRECT_URL = 'dashboard'  
LOGIN_URL = 'login'  
LOGOUT_URL = 'logout'
  • LOGIN_REDIRECT_URL:告诉Django,如果登录成功但没有next参数,应该重定向到哪个URL。
  • LOGIN_URL:重定向到用户登录的URL(例如,使用login_required装饰器的视图) 
  • LOGOUT_URL: 重定向到用户注销的URL

现在编辑base模版,添加登录和注销链接,以便将所有内容组合在一起。


当前用户由身份验证中间件在HttpRequest对象中设置。可以使用request.user访问它。即使用户没有经过身份验证,您也会在请求中找到User对象。未经身份验证的用户在请求中被设置为AnonymousUser的实例。检查当前用户是否通过身份验证的最佳方法是访问其只读属性is_authenticated。

编辑base.html模板id为header的div

    <div id="header"><span class="logo">Bookmarks</span>{% if request.user.is_authenticated %}<ul class="menu"><li {% if section == "dashboard" %}class="selected"{% endif %}><a href="{% url 'dashboard' %}">My dashboard</a></li><li {% if section == "images" %}class="selected"{% endif %}><a href="#">Images</a></li><li {% if section == "people" %}class="selected"{% endif %}><a href="#">People</a></li></ul>{% endif %}<span class="user">{% if request.user.is_authenticated %}Hello {{ request.user.first_name }},<a href="{% url "logout" %}">Logout</a>{% else %}<a href="{% url "login" %}">Log-in</a>{% endif %}</span></div>
  • 构建只向经过身份验证的用户显示站点的菜单。我们还检查section,向相应的li项添加一个选定的类属性,以便使用CSS在菜单中突出显示当前部分。  
  • 还显示用户的名字和一个链接,如果用户通过身份验证,则显示注销链接,否则显示登录链接。

总结一下到目前为止所做的工作:

  • 已经将内置的Django认证登录和注销视图添加到项目中
  • 已经为这两个视图创建了自定义模板,并定义了一个简单的仪表板视图,以便在用户登录后重定向用户。
  • 最后,为Django配置了默认使用这些url的设置
http://www.dt0577.cn/news/21578.html

相关文章:

  • 迁安网站建设深圳网站seo外包公司哪家好
  • wordpress后台左侧菜单显示seo是什么的简称
  • 做网站为什么一定要留住用户网站空间租用
  • 网站实现搜索功能营业推广促销方式有哪些
  • 终端平台网站建设百度重庆营销中心
  • 用vs2010做网站教程百度一下你就知道移动首页
  • 网站的页面风格是什么山西网络营销外包
  • 昆明云南微网站搭建哪家好友情链接导航
  • 网站怎么做才能赚钱网址导航哪个好
  • 站长工具大全网站建设公司业务
  • 专业做数据的网站有哪些方面做一个微信小程序需要多少钱
  • 天津党员档案建设网站站长统计app最新版本2023
  • 做新房网站怎么弄南宁百度seo优化
  • 中国建设银行网站登陆互联网广告代理商
  • 个人网站推广方案网络推广公司官网
  • 怎么自己开发app软件seo优化器
  • 新乡市做网站直销系统网站自己开平台怎么弄啊
  • java做的网站怎么调试南京网页搜索排名提升
  • 网站咋做seo是什么软件
  • 长沙营销型网站建设公司网站设计公司怎么样
  • 西宁网站建设君博解决营销推广文案
  • 网站建设 考核指标全网热度指数
  • 网吧可以做网站吗天津网站制作系统
  • 广州家具网站建设宁波seo排名费用
  • 一些做的好的网站百度有哪些产品
  • 关于 公司网站建设的通知莆田百度快照优化
  • 马鞍山网站建设公司附近的电脑培训班在哪里
  • onedrive 做网站静态搜索引擎优化的基础是什么
  • 网站如何做日历com域名
  • 免费做外贸的网站平台有哪些2024年阳性什么症状