django 框架实现的用户注册、登录、退出功能示例

yizhihongxing

下面我会详细讲解“Django 框架实现的用户注册、登录、退出功能示例”的完整攻略。

示例一:用户注册

步骤一:新建 Django 项目

首先,创建一个 Django 项目,然后在 settings.py 文件中配置数据库。在命令行中运行以下命令:

$ django-admin startproject yourprojectname

步骤二:配置数据库

settings.py 文件中配置数据库,例如:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

步骤三:创建用户模型

models.py 文件中定义一个用户模型:

from django.contrib.auth.models import AbstractUser

class User(AbstractUser):
    pass

步骤四:定义用户注册表单

forms.py 文件中定义一个用户注册表单:

from django import forms
from django.contrib.auth.forms import UserCreationForm
from .models import User

class RegistrationForm(UserCreationForm):
    class Meta:
        model = User
        fields = ['username', 'email', 'password1', 'password2']

步骤五:创建用户注册视图

views.py 文件中创建一个用户注册视图:

from django.shortcuts import render, redirect
from django.contrib.auth import login
from .forms import RegistrationForm

def registration(request):
    if request.method == 'POST':
        form = RegistrationForm(request.POST)
        if form.is_valid():
            user = form.save()
            login(request, user)
            return redirect('home')
    else:
        form = RegistrationForm()
    return render(request, 'registration.html', {'form': form})

步骤六:创建用户注册视图模板

templates 目录下创建 registration.html 模板文件:

{% extends "base.html" %}

{% block content %}
<form method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">Sign Up</button>
</form>
{% endblock %}

现在,你可以在浏览器中访问 http://localhost:8000/registration/ 进行用户注册了。

示例二:用户登录和退出

步骤一:创建用户登录视图

views.py 文件中创建一个用户登录视图:

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

def user_login(request):
    if request.method == 'POST':
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(request, username=username, password=password)
        if user is not None:
            login(request, user)
            return redirect('home')
        else:
            # Return an 'invalid login' error message.
            pass
    return render(request, 'login.html')

步骤二:创建用户登录视图模板

templates 目录下创建 login.html 模板文件:

{% extends "base.html" %}

{% block content %}
<form method="post" action="{% url 'login' %}">
    {% csrf_token %}
    <label for="username">Username:</label>
    <input type="text" name="username" id="username">
    <label for="password">Password:</label>
    <input type="password" name="password" id="password">
    <button type="submit">Log In</button>
</form>
{% endblock %}

步骤三:创建用户退出视图

views.py 文件中创建一个用户退出视图:

from django.contrib.auth import logout

def user_logout(request):
    logout(request)
    return redirect('home')

步骤四:创建用户退出视图模板

templates 目录下创建一个链接用于用户退出:

{% extends "base.html" %}

{% block content %}
    <p>You are logged in as {{ user.username }}.</p>
    <a href="{% url 'logout' %}">Log out</a>
{% endblock %}

现在,你可以在浏览器中访问 http://localhost:8000/login/ 进行用户登录了,登录成功后,你也可以在 http://localhost:8000/ 中找到一个用户退出链接,用于退出当前登录。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:django 框架实现的用户注册、登录、退出功能示例 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • django-初始配置(纯手写)详解

    下面是关于“django-初始配置(纯手写)详解”的完整攻略。 1. 安装Django 首先,你需要安装Django。在安装之前,你需要先安装Python。然后,使用以下命令来安装Django: pip install django 如果你使用的是Python3,使用以下命令: pip3 install django 2. 创建Django项目 安装完成Dj…

    Django 2023年5月16日
    00
  • django 执行 python manage.py makemigrations 报错

    RuntimeError: Model class app_anme.models.xxx doesn’t declare an explicit app_label and isn’t in an application in INSTALLED_APPS.  将app加入settings的INSTALLED_APPS 中

    Django 2023年4月11日
    00
  • 解决django报错:ValueError(“The view Hello.views.login didn’t return an HttpResponse object. It returned None instead.”)

    产生原因:定义的视图函数login,没有返回HttpResponse对象。它返回None。所有导致访问报错 解决:我在访问页面的时候把请求方式搞错了,本来是先获取页面,然后再提交数据。我这里变成直接提交数据了。 改成get,先获取界面在post提交数据: 附带一个启动django服务的脚本: import os def run_server(work_dir…

    Django 2023年4月12日
    00
  • Django日志和调试工具栏实现高效的应用程序调试和性能优化

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

    Django 2023年5月16日
    00
  • Django开发的简易留言板案例详解

    下面我详细讲解一下“Django开发的简易留言板案例详解”的完整攻略。 前言 本文主要讲解使用Django框架开发简易留言板的过程和实现步骤,旨在帮助初学者学习Django框架,并对Django框架的开发方式有一个更深入的了解。在本文中,将涉及到Django框架的环境配置、数据库的操作和后端代码的编写等内容。 环境搭建 在开始搭建环境前,我们需要确保已经在本…

    Django 2023年5月16日
    00
  • [django]数据导出excel升级强化版(很强大!)

    不多说了,原理采用xlwt导出excel文件,所谓的强化版指的是实现在网页上选择一定条件导出对应的数据 之前我的博文出过这类文章,但只是实现导出数据,这次左思右想,再加上网上的搜索,终于找出方法实现条件导出的功能了. 先上图: 再说明:核心是使用django视图中的命名组,例如配置url(r’^perm=(?P<a>\w+)$’, ‘keywor…

    2023年4月10日
    00
  • QQ_990814268 摘抄Django项目购物车、订单(三)

    提示 使用redis数据库存储购物车数据 购物车需要完成增、删、改、查的逻辑 查询的结果,需要由服务器响应界面给客户端展示出来 增删改的操作,是客户端发数据给服务器,两者之间的交互是局部刷新的效果,需要用ajax交互 添加购物车的请求方法:post 服务器和客户端传输数据格式:json 服务器接收的数据 用户id:user_id 商品id:sku_id 商品…

    Django 2023年4月13日
    00
  • django rest_framework

    Django REST framework is a powerful and flexible toolkit for building Web APIs. The Web browsable API is a huge usability win for your developers. Authentication policies including…

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