django的登录注册系统的示例代码

首先,需要先说明一下Django的登录注册系统是如何实现的。

Django使用的是MVC(Model-View-Controller)框架,其中登录注册系统主要是使用Django的auth模块实现的。

接下来,我将为你详细讲解Django的登录注册系统的示例代码的完整攻略。

示例1:Django用户注册系统的示例代码

步骤1:创建新的Django项目

可以使用以下命令在终端中创建一个新的Django项目:

django-admin startproject my_project

步骤2:创建一个新的Django应用程序

在终端中,输入以下命令来创建新的Django应用程序:

python manage.py startapp my_app

这将在my_project目录下创建一个名为my_app的新应用程序。

步骤3:创建新的注册View

打开my_app/views.py文件,并添加以下代码来创建新的注册视图:

from django.shortcuts import render, redirect
from django.contrib.auth.forms import UserCreationForm

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

这里我们先来解释一下:

  • render()函数返回一个包含渲染HTML模板的HttpResponse对象。在这里,我们将返回一个带有registration/register.html模板和一个名为form的上下文(包含用户表单的表单实例)的HttpResponse对象。

  • UserCreationForm是Django auth模块中的一个表单类,用于创建新用户。

  • form.is_valid()方法用于检查表单是否有效,如果有效,则将表单保存,并重定向到登录页面。

步骤4:创建注册HTML模板

在my_app/templates/registration目录下,创建名为register.html的HTML模板文件,并添加以下代码:

{% extends 'base.html' %}

{% block content %}

  <h2>Register</h2>

  <form method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">Register</button>
  </form>

{% endblock %}

请注意,这里我们使用了Django模板继承语法,扩展了名为“base.html”的基础模板,以便在渲染模板时自动包含顶层HTML、body和header。

步骤5:更新URL映射

打开my_project/urls.py文件,并添加以下行来更新URL映射:

from django.urls import path, include
from django.contrib.auth import views as auth_views
from .views import register

urlpatterns = [
    path('register/', register, name='register'),
    path('login/', auth_views.LoginView.as_view(template_name='registration/login.html'), name='login'),
    path('logout/', auth_views.LogoutView.as_view(template_name='registration/logout.html'), name='logout'),
    path('', include('django.contrib.auth.urls')),
]

这里我们指定了新的register路径,并将它映射到register视图上。我们还将默认的auth_views.LoginView和auth_views.LogoutView视图映射到login和logout路径。这里我们还使用了include语法,以便导入Django的默认身份验证URL配置。

示例2:Django用户登录系统的示例代码

步骤1:创建新的登录View

打开my_app/views.py文件,并添加以下代码来创建新的登录视图:

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

def user_login(request):
    if request.method == 'POST':
        form = AuthenticationForm(request, data=request.POST)
        if form.is_valid():
            user = form.get_user()
            login(request, user)
            return redirect('home')
    else:
        form = AuthenticationForm()
    return render(request, 'registration/login.html', {'form': form})

这里我们先来解释一下:

  • AuthenticationForm是Django auth模块中的表单类,用于登录现有用户。

  • form.is_valid()方法用于检查表单是否有效,如果有效,则登录用户并重定向到主页。

步骤2:创建登录HTML模板

在my_app/templates/registration目录下,创建名为login.html的HTML模板文件,并添加以下代码:

{% extends 'base.html' %}

{% block content %}

  <h2>Login</h2>

  <form method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">Login</button>
  </form>

{% endblock %}

请注意,我们仍然使用了Django模板继承语法,并扩展了基础模板。

步骤3:更新URL映射

打开my_project/urls.py文件,并添加以下行来更新URL映射:

from django.urls import path, include
from django.contrib.auth import views as auth_views
from .views import register, user_login

urlpatterns = [
    path('register/', register, name='register'),
    path('login/', user_login, name='login'),
    path('logout/', auth_views.LogoutView.as_view(template_name='registration/logout.html'), name='logout'),
    path('', include('django.contrib.auth.urls')),
]

这里我们将默认的auth_views.LogoutView视图映射到logout路径,并将新的user_login视图映射到login路径。

至此,我们完成了Django的登录注册系统的示例代码完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:django的登录注册系统的示例代码 - Python技术站

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

相关文章

  • Django数据查询中对字段进行排序 Django数据查询中对字段进行排序

      第一种方法:使用order_by进行排序 Articlelist = Article.objects.filter(**kwargs).order_by(‘nid’) Articlelist = Article.objects.filter(**kwargs).order_by(‘-nid’) #倒序 Articlelist = Article.obje…

    Django 2023年4月13日
    00
  • Django2.0 models中的on_delete参数

    一、外键、OneToOne字段等on_delete为必须参数  – 如下ForeignKey字段源码,to、on_delete为必须参数to:关联的表on_delete:当该表中的某条数据删除后,关联外键的操作related_name:反查参数,设置后可以在被关联表中通过该字段反查外键所在表,默认:set_表名to_field:默认主键,因为mysql只支持…

    Django 2023年4月10日
    00
  • django常用模块汇总

      目录 django常用模块汇总 django常用模块汇总 from django.conf import settings # Django配置文件,自己django项目有配置就用自己的,没有就用系统默认配置。 from django import forms # form组件 class MyForm(forms.Form) from django.f…

    Django 2023年4月11日
    00
  • Django使用联合主键

    今天闲着没事,突然想起一个以前遇到的一个小问题。一直忘了来验证自己的解决方案,所以今天特意来查询了些资料来验证下自己的想法。整理如下:   单张表内建立联合主键: class IotTemp(models.Model): mac = models.CharField(max_length=64, blank=False) temperature = mode…

    Django 2023年4月15日
    00
  • [Django_1_0]初次见面

    文章将写安装和第一次使用时候的操作。文章是照着文档做的,但是以后的内容会有不一样。 安装 pip install django 我这里是使用python3的,也可以使用 pip3 install django 安装成功之后也可以通过 python3 -m django –version 查看版本,如果安装失败,则会返回 No model named dja…

    2023年4月9日
    00
  • Anaconda+django写出第一个web app(一)

    在安装好Anaconda和django之后,我们就可以开始创建自己的第一个Web app,那么首先创建一个空文件夹,之后创建的文件都在这个文件夹内。 启动命令行进入此文件夹内,可以先通过如下命令查看一下自己的python版本和django版本。  python –version  django-admin –version  我的python和djang…

    Django 2023年4月11日
    00
  • Django logging日志模块实例详解(日志记录模板配置)

    让我来给您讲解一下“Django logging日志模块实例详解(日志记录模板配置)”的攻略,涉及到日志记录模板配置的两个示例。 简介 在Django应用程序中使用logging模块记录日志非常重要。因为日志可以帮助我们找到错误并快速解决问题。Django中的logging模块遵循Python的标准库logging模块。logging模块可以让我们记录不同类…

    Django 2023年5月16日
    00
  • Django路由Path方法详解(详细步骤)

    Django中的路由系统是通过URLconf(URL配置)来实现的。URLconf将URL模式映射到视图函数或类上。在Django中,我们可以使用两种方式来定义URLconf,一种是使用基于函数的视图,另一种是使用基于类的视图。 在URLconf中,我们需要使用路由函数来匹配URL模式,Django提供了两种路由函数:path()和re_path()。在本文…

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