Django实战之用户认证(初始配置)

下面是详细讲解“Django实战之用户认证(初始配置)”的完整攻略。

概述

在Django项目中,用户认证是必不可少的一步。Django提供了一套完善的用户认证系统,可以方便地实现用户的认证、注册、密码重置等功能。本文将介绍Django用户认证的初始配置过程。

准备工作

在开始之前,需要做以下准备工作:

  • 安装Django:使用pip安装Django,可以输入以下命令安装最新版本:

pip install django

  • 创建Django项目:使用Django命令行工具创建项目。

django-admin startproject myproject

配置用户认证

Django的用户认证系统默认是关闭的,需要手动开启。接下来我们将对Django的用户认证系统进行配置。

修改settings.py

myproject目录下的settings.py文件中,找到以下配置项:

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

django.contrib.auth解除注释:

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

注: 这里我们只需要引入django.contrib.auth这个模块。

然后,在该文件中找到MIDDLEWARE配置项:

MIDDLEWARE = [
    ...
    # 'django.middleware.security.SecurityMiddleware',
    # 'django.contrib.sessions.middleware.SessionMiddleware',
    # 'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',
    # 'django.contrib.auth.middleware.AuthenticationMiddleware',
    # 'django.contrib.messages.middleware.MessageMiddleware',
    # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

django.contrib.auth.middleware.AuthenticationMiddleware解除注释:

MIDDLEWARE = [
    ...
    # 'django.middleware.security.SecurityMiddleware',
    # 'django.contrib.sessions.middleware.SessionMiddleware',
    # 'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    # 'django.contrib.messages.middleware.MessageMiddleware',
    # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

注:这里我们开启了中间件django.contrib.auth.middleware.AuthenticationMiddleware,用于在用户认证时对请求进行检查。

创建数据库表

在配置完用户认证系统之后,我们需要创建相应的数据库表。填写以下命令:

python manage.py makemigrations
python manage.py migrate

上述命令将会创建auth应用所需的数据表, migrate命令将这些表迁移到数据库中。

创建超级用户

在开始用户认证之前,我们需要先创建一个超级用户,用于管理用户。

python manage.py createsuperuser

填写超级用户账号、电子邮件和密码等信息。完成后,将创建一个超级用户账号。

现在我们的用户认证系统已经配置好了,接下来我们将实现一个用户注册和登录的功能。

示例说明

下面将通过两个实例来说明用户注册和登录的功能。

示例1:用户注册

  1. 在myproject目录下,创建一个新的应用(app):

python manage.py startapp user

  1. user 应用主目录下创建urls.py 文件用于url映射,添加以下内容:

```
from django.urls import path
from . import views

urlpatterns = [
    path('register/', views.register),
]

```

  1. user 应用主目录下创建views.py 文件,添加以下代码:

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

def register(request):
if request.method == 'POST':
form = UserCreationForm(request.POST)
if form.is_valid():
form.save()
username = form.cleaned_data.get('username')
messages.success(request, f'Account created for {username}!')
return redirect('home')
else:
form = UserCreationForm()
return render(request, 'register.html', {'form': form})
```

  1. 创建 register.html, 添加以下内容:

```
{% extends 'base.html' %}

{% block content %}

Register Here

{% csrf_token %}
{{ form.as_p }}

{% endblock %}
```

  1. 在myproject目录下的urls.py文件中,添加注册的URL映射:

```
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
path('admin/', admin.site.urls),
path('', include('user.urls')),
]
```

  1. 运行服务器:

python manage.py runserver

打开浏览器并输入 http://127.0.0.1:8000/register/ ,打开注册页面,填写用户名和密码,点击注册按钮即可完成注册。注册完成后会返回到主页。

示例2:用户登录

先在之前的user应用主目录下创建urls.py,添加以下内容:

from django.urls import path
from . import views

urlpatterns = [
    path('login/', views.login),
]

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

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

def login(request):
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')
        user = authenticate(request, username=username, password=password)
        if user is not None:
            login(request, user)
            return redirect('home')
        else:
            messages.info(request, 'Invalid credentials')
    return render(request, 'login.html')

然后是登录的HTML模板, 在user应用主目录下创建login.html文件,添加以下内容:

{% extends 'base.html' %}

{% block content %}
  <h2>Login Here</h2>
  <form method="post">
    {% csrf_token %}
    <label for="username">Username:</label>
    <input type="text" id="username" name="username">
    <label for="password">Password:</label>
    <input type="password" id="password" name="password">
    <button type="submit">Login</button>
  </form>
{% endblock %}

接下来在myproject应用主目录下的urls.py文件中,添加登录URL的映射:

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('user.urls')),
    path('login/', include('user.urls')),
]

运行服务器:

python manage.py runserver

打开浏览器并输入 http://127.0.0.1:8000/login/ ,打开登录页面,填写之前注册的用户名和密码,点击登录按钮即可完成登录。登录完成后会返回到主页。

以上就是Django用户认证(初始配置)的完整攻略,同时这包含了两条示例说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django实战之用户认证(初始配置) - Python技术站

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

相关文章

  • Django如何将自己的网站让其他主机访问

    ##第一点: 需要在你的setting.py文件中将按照如下设置: ALLOWED_HOSTS = [‘127.0.0.1’, ‘192.168.1.102’] 192.168.1.102是Django所在机器的IP  (此段验证未成功:或者在中括号中加入你在局域网中的IP。如我在局域网中的IP为192.168.10.133 所以设置ALLOWED_HOST…

    Django 2023年4月11日
    00
  • python27+django1.9添加api

    我们进入Python的交互 shell 并使用Django提供的API。要进入Python shell,使用python manage.py shell 使用这个而不是简单的输入”python”,是因为 manage.py 会帮你创建项目的环境。“创建项目环境”包括两件事: 把polls添加到sys.path里。为了灵活性,Django中的模块通过加点的路径…

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

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

    2023年4月10日
    00
  • Django Auth应用实现用户身份认证

    Django Auth应用是Django官方提供的一个用户认证应用,可以用于实现用户的注册、登录、注销等功能。本文将介绍如何使用Django Auth应用实现用户身份认证的完整方法。 安装Django Auth应用 首先需要安装Django Auth应用,可以使用pip安装: pip install django-auth 或者在项目的requirement…

    Django 2023年3月12日
    00
  • 使用 Visual Studio Code(VSCode)搭建简单的Python+Django开发环境的方法步骤

    下面我将为您详细讲解如何在 VSCode 中搭建 Python+Django 开发环境,并针对两条示例做出说明: 1. 使用 VSCode 搭建 Python+Django 开发环境的步骤 1.1 安装 Python 首先,我们需要在本地安装 Python。您可以在 Python官网 上下载适合您操作系统的 Python 安装包,并按照指引完成安装。 1.2…

    Django 2023年5月15日
    00
  • Django 自定义权限管理系统详解(通过中间件认证)

    下面我将详细讲解“Django 自定义权限管理系统详解(通过中间件认证)”的完整攻略,并且包含两条示例说明。 1. 安装 Django 和创建项目 首先,我们需要安装 Django,并创建一个新项目: pip install django django-admin startproject mysite 2. 创建应用并添加模型 接着,创建一个新的应用,并在…

    Django 2023年5月16日
    00
  • Python Django Vue 项目创建过程详解

    下面我将为您详细讲解“Python Django Vue 项目创建过程详解”: Python Django Vue 项目创建过程详解 什么是 Django 和 Vue Django 是一个开源的 Web 应用程序框架,它使用 Python 编程语言编写,可以轻松地在服务器上进行网络开发。它有一个开发人员友好的API,可以加速开发过程,同时保持代码简洁,并提供…

    Django 2023年5月16日
    00
  • 笔记-django第一个项目

      1.      创建项目 安装 Django 之后,现在有了可用的管理工具 django-admin。可以使用 django-admin 来创建一个项目: 看下django-admin 的命令介绍:   1.1.    startproject   django-admin startproject HelloWorld   创建完成后我们可以查看下项目…

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