详解Django HTML表单实现用户登录退出

在Django中,实现用户登录和退出是非常简单的,主要涉及到视图函数和模板的编写。

下面是实现用户登录和退出功能步骤:

创建Django项目

创建Django项目并在其中创建一个名为 "accounts " 的应用程序。

django-admin startproject myproject
cd myproject
python manage.py startapp accounts

创建 "login " 的 URL 路由

创建一个名为 "login " 的 URL 路由,用于处理用户登录页面和用户登录请求。

在 "urls.py " 文件中,添加以下代码:

from django.urls import path
from .views import *

urlpatterns = [
    path('login/', login_view, name='login'),
    path('logout/', logout_view, name='logout'),
]

创建用户登录的视图函数

在 "views.py " 文件中,添加以下代码:

from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login, logout

def login_view(request):
    if request.method == 'POST':
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(request, username=username, password=password)
        if user:
            login(request, user)
            return redirect('/')
        else:
            message = 'Invalid login credentials!'
            return render(request, 'accounts/login.html', {'message':message})
    else:
        return render(request, 'accounts/login.html')

这个视图函数接受从HTML表单POST过来的username和password,接着调用Django内置的方法 authenticate() 接收request和username,password两个参数,如果用户名和密码是正确的,该方法会返回一个用户对象,反之返回None。如果authenticate()方法返回一个用户对象,视图函数将使用Django内置的 login() 方法登录该用户,并将其重定向到主页。 如果验证失败,将向页面发送一个错误消息。

创建用户退出的视图函数

在 "views.py " 文件中,添加以下代码:

def logout_view(request):
    logout(request)
    return redirect('/')

这个视图函数调用 Django 内置的 logout() 方法,该方法会将用户从系统中注销。

创建 "login.html" 的模板

创建一个名为 "login.html" 的模板,用于渲染用户登录表单。

在 "templates/accounts " 目录下,创建一个名为 "login.html " 的模板文件,添加以下代码:

{% if message %}
    <p>{{ message }}</p>
{% endif %}

<form method="POST">
    {% csrf_token %}
    <label for="username">Username:</label>
    <input type="text" name="username" required>
    <label for="password">Password:</label>
    <input type="password" name="password" required>
    <input type="submit" value="Login">
</form>

这个模板文件渲染了一个包含用户名和密码输入框的表单,以及一个提交按钮。它还使用 {% csrf_token %} 标记来确保 POST 请求的安全性。

创建“base.html”通用模板

创建一个名为 “base.html”的通用模板,用于作为其他模板的父模板。 在“templates”目录下创建“base.html”,并添加以下内容:

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8"/>
        <title>{% block title %}{% endblock %}</title>
    </head>
    <body>
        {% block content %}
        {% endblock %}
    </body>
    </html>

创建 “home.html” 模板

创建一个名为 “home.html” 的模板,用以渲染用户已登录的页面。 将以下代码添加到“home.html”中:

    {% extends "base.html" %}
    {% block title %}Home{% endblock %}
    {% block content %}
        {% if user.is_authenticated %}
            <p>Welcome, {{ user.username }}!</p>
            <a href="{% url 'logout' %}">Logout</a>
        {% else %}
            <p>You are not logged in.</p>
            <a href="{% url 'login' %}">Login</a>
        {% endif %}
    {% endblock %}

更新 INSTALLED_APPS

更新“settings.py”中的INSTALLED_APPS, 添加新应用程序 "accounts " 和 "django.contrib.auth "。

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'accounts',
    ]

至此,我们已经完成了Django HTML表单实现用户登录退出的完整攻略。通过上述步骤的操作,用户可以通过表单输入用户名和密码来登录系统,也可以通过点击“Logout”按钮来退出系统。在“Home”页面上,用户可以看到系统当前的登录状态 。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Django HTML表单实现用户登录退出 - Python技术站

(0)
上一篇 2023年3月12日
下一篇 2023年3月12日

相关文章

  • Django日志和调试工具栏实现高效的应用程序调试和性能优化

    实现高效的应用程序调试和性能优化是每个开发人员和网站管理员不可避免的任务,而Django日志和调试工具栏是Django框架的两个强大的工具,可以帮助我们完成这个任务。我们可以使用Django默认的日志系统来捕获应用程序中的错误和故障,使用调试工具栏来实时监控性能并进行应用程序调试。 以下是实现“Django日志和调试工具栏实现高效的应用程序调试和性能优化”的…

    Django 2023年5月16日
    00
  • 浅谈Django Admin的初步使用

    下面我将详细讲解“浅谈Django Admin的初步使用”的完整攻略,并在过程中提供两条示例说明。 1. 什么是Django Admin Django Admin是Django框架提供的内置管理工具,可以方便地对应用程序的数据进行管理和维护。它提供了一个轻量级的前端界面,允许管理者、开发者更加直观地查看、添加、修改、删除数据,而无需编写自定义管理界面。 2.…

    Django 2023年5月16日
    00
  • 虚拟环境下搭建一个Django项目

    下面是虚拟环境下搭建Django项目的攻略: 安装虚拟环境 在终端中输入以下命令来安装虚拟环境: $ pip install virtualenv 创建虚拟环境 在终端中输入以下命令来创建虚拟环境: $ virtualenv myenv 其中myenv是你要创建的虚拟环境的名字。 激活虚拟环境 在终端中输入以下命令来激活虚拟环境: $ source myen…

    Django 2023年5月16日
    00
  • Django框架创建项目的方法入门教程

    下面是“Django框架创建项目的方法入门教程”的完整攻略。 创建Django项目的步骤 1. 安装Django框架 要创建一个Djano项目,首先我们需要安装Django框架。可以使用pip命令进行安装: pip install django 2. 创建Djano项目 在安装好Django之后,我们就可以创建Django项目了。在命令行中进入项目所在文件夹…

    Django 2023年5月16日
    00
  • Django实现表单验证

    Django是一款成熟的web开发框架,其内置了表单验证机制,方便我们实现表单数据的验证。下面就来详细讲解Django实现表单验证的完整攻略。 1. 创建表单类 首先,我们需要创建一个表单类,在models.py中定义表单字段,例如: from django import forms class LoginForm(forms.Form): username…

    Django 2023年5月16日
    00
  • Vue+Django项目部署详解

    我来为您详细讲解“Vue+Django项目部署详解”的完整攻略。 1. 环境准备 在进行Vue+Django项目部署之前,我们需要准备好以下环境: 一台Linux服务器,最好是Ubuntu系统 安装Docker和Docker Compose 安装Nginx和Supervisor 如果您还没有安装上述环境,可以参考以下博客进行安装: Docker和Docker…

    Django 2023年5月16日
    00
  • python ==> Django.view(登录,注册,个人页)

    Django-views 1.本篇博客主要是想实现一个:通过Django创建一个项目,目的: 三个界面,用户登录界面,用户注册界面,用户登录成功之后的个人页。本篇功能很简单,就是简单的时间页面的跳转,主要以练习为主。 首先:我们先把项目创建好,这里我创建的Django的项目名为:mysite_views,并且创建一个应用项目:app01.  两种创建方式: …

    Django 2023年4月11日
    00
  • python+django常用富文本插件使用配置(ckeditor,kindeditor)

    KindEditor安装配置 WEB开发离不开富文本编辑器,KindEditor和CKEditor是两款不错的第三方插件。 1.kindeditor下载 http://kindeditor.net/down.php 2.目录结构(删除多余的文件) 3.settings.py和urls.py配置  在settings.py 中设置MEDIA_ROOT 目录  …

    Django 2023年4月13日
    00
合作推广
合作推广
分享本页
返回顶部