Django实现注册及登录功能

作者:Nicky2024.01.17 18:50浏览量:6

简介:本文将介绍如何使用Django框架实现用户注册和登录功能,并附上完整的源代码。通过这个示例,你将了解到如何使用Django的内置功能来快速搭建一个安全的用户认证系统。

Django是一个强大的Python Web框架,它提供了许多方便的工具和功能,其中包括用户认证系统。下面我们将通过一个简单的示例来演示如何使用Django实现用户注册和登录功能。
首先,确保你已经安装了Django。你可以通过以下命令来安装Django:

  1. pip install django

接下来,创建一个新的Django项目,并在项目目录中创建一个新的应用。你可以使用以下命令来创建项目和应用的目录结构:

  1. django-admin startproject mysite
  2. cd mysite
  3. python manage.py startapp users

mysite/settings.py文件中,将users应用添加到INSTALLED_APPS列表中:

  1. INSTALLED_APPS = [
  2. ...
  3. 'users',
  4. ]

然后,在users应用中创建一个新的模型来存储用户信息。在users/models.py文件中,添加以下代码:

  1. from django.db import models
  2. from django.contrib.auth.models import AbstractUser
  3. class User(AbstractUser):
  4. pass

这将使用Django的内置用户模型作为基础,并创建一个新的User模型。接下来,我们需要运行数据库迁移命令来创建必要的数据库表:

  1. python manage.py makemigrations users
  2. python manage.py migrate

现在,我们已经准备好了基本的用户模型。接下来,我们将创建视图和模板来实现用户注册和登录功能。在users/views.py文件中,添加以下代码:

  1. from django.shortcuts import render, redirect, get_object_or_404
  2. from django.contrib.auth import authenticate, login, logout
  3. from django.contrib.auth.models import User
  4. from .forms import RegistrationForm, LoginForm
  5. def register(request):
  6. if request.method == 'POST':
  7. form = RegistrationForm(request.POST)
  8. if form.is_valid():
  9. user = form.save()
  10. login(request, user)
  11. return redirect('home')
  12. else:
  13. form = RegistrationForm()
  14. return render(request, 'users/register.html', {'form': form})
  15. def login_view(request):
  16. if request.method == 'POST':
  17. form = LoginForm(request.POST)
  18. if form.is_valid():
  19. user = authenticate(username=form.cleaned_data['username'], password=form.cleaned_data['password'])
  20. if user is not None:
  21. login(request, user)
  22. return redirect('home')
  23. else:
  24. form = LoginForm()
  25. return render(request, 'users/login.html', {'form': form})