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

下面我会详细讲解“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 xadmin管理后台

    前面学习了django自带的admin后台管理感觉页面不美观,网上的大神优化了一版后台管理xadmin,并且开源了,在github开源下载到源码。 django 2.1.2 xadmin 2.0 python 3.6 xadmin安装 xadmin在github的源码地址https://github.com/sshwsfc/xadmin,可以用pip安装也可…

    2023年4月10日
    00
  • django之“static”全局设置

    1. 首先要配置静态文件路径(这些文件不输入任何app):、 # 设置静态文件读取路径(这些静态文件不属于任何app) STATICFILES_DIRS = [ os.path.join(BASE_DIR, ‘front’, ‘dist’)#路径 ] 2. 在 settings.py 文件中 TEMPLATES 下新增节点:’builtins’:[‘djan…

    Django 2023年4月13日
    00
  • Django 自动生成api接口文档教程

    下面我将详细讲解“Django 自动生成api接口文档教程”的完整攻略,包括以下主要内容: 安装和配置Django-rest-swagger 编写接口文档注释 在项目中使用Django-rest-swagger生成接口文档 1. 安装和配置Django-rest-swagger 首先,我们需要通过pip安装Django-rest-swagger。在Djang…

    Django 2023年5月16日
    00
  • celery在Django项目中的使用案例

    一、逻辑分析 第一步:在项目根目录新建包 第二步:在使用提交异步任务的位置,导入使用即可 视图函数中使用,导入任务任务.delay() # 提交任务 第三步:启动worker,如果有定时任务,启动beat # 启动worker celery -A celery_task worker -l info -P eventlet # 启动beat celery -…

    2023年4月10日
    00
  • django框架模型层功能、组成与用法分析

    Django框架模型层功能、组成与用法分析 1. 模型层的作用 Django框架采用了MVC模式,其中模型层是其核心部分。它的作用是连接数据库、处理数据和提供数据的接口。模型层相当于应用程序和数据库管理系统之间的中间层,它负责与数据库进行交互,提供了支持存储和检索数据的常用方法,例如添加、删除、修改和查询数据记录等。 2. 模型层的组成 模型层由模型类、管理…

    Django 2023年5月16日
    00
  • (4)django的新手三件套(返回页面、返回字符、重定向)

    from django.shortcuts import render,HttpResponse,redirect 新手三件套,前期开发都会用到 render   #向浏览器返回页面 HttpResponse   #向浏览器返回字符内容 redirect   #重定向   django里有分层的概念 urls.py就是路由层 views.py 就是视图层 t…

    Django 2023年4月12日
    00
  • Django 中的缓存问题

    Django 中的缓存问题 简单介绍 ​ 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. ​ 当一个网站的用户访问量很大的时候,每一次的的后台操作,都会消耗很多的服务端资源,所以必须使用缓存来减轻后端服务器的压力. ​ 缓存是将一些常用的数据保存内存或者memcache中,在一定的…

    Django 2023年4月16日
    00
  • Django 权限管理(permissions)与用户组(group)详解

    Django 权限管理(permissions)与用户组(group)详解 什么是权限(permission)? 在 Django 中,权限指的是用户在应用程序中可以访问的特定资源(如: 页面、视图函数等)。Django 中使用权限来限制用户对资源的访问,从而保护安全性。 在 Django 中,权限是由 django.contrib.auth 应用程序提供的…

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