Web实战丨基于Django与HTML的用户登录验证系统

这篇具有很好参考价值的文章主要介绍了Web实战丨基于Django与HTML的用户登录验证系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

写在前面

本期内容:基于Django与HTML的简单登录验证系统。

项目需求:Python+Django

项目下载地址:https://download.csdn.net/download/m0_68111267/88727183

项目简介

登录系统在我们的日常生活中随处可见,比如当我们使用QQ、微信等社交软件时,都需要先输入自己的账号密码进行登录,本文博主将带着大家用Python的Django实现一个简单的登录系统。

项目框架

Web实战丨基于Django与HTML的用户登录验证系统,《 Python实战项目100例 》,《 Web大作业 》,前端,django,数据库

实验内容

安装依赖库

  • Django(如未安装django库,可以运行以下命令进行安装)
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple django

1.创建项目

  1. 使用以下命令新建一个名为login的项目
django-admin startproject login
  1. 进入login项目,使用以下命令新建一个名为user的app
cd login
django-admin startapp user

2.系统配置

  1. 双击打开login文件夹中的settings.py文件

Web实战丨基于Django与HTML的用户登录验证系统,《 Python实战项目100例 》,《 Web大作业 》,前端,django,数据库

  1. INSTALLED_APPS中添加user

Web实战丨基于Django与HTML的用户登录验证系统,《 Python实战项目100例 》,《 Web大作业 》,前端,django,数据库

3.视图函数

双击打开user文件夹中的view.py文件,填入以下代码:

Web实战丨基于Django与HTML的用户登录验证系统,《 Python实战项目100例 》,《 Web大作业 》,前端,django,数据库

from django.shortcuts import render, redirect
from .models import User

# Create your views here.

from functools import wraps

def login(request):
    if request.method == "POST":
        username = request.POST.get('username')
        password = request.POST.get('password')

        user = User.objects.filter(username=username, password=password)
        print(user)
        if user:
            request.session['is_login'] = '1'
            request.session['username'] = username
            request.session['user_id'] = user[0].id
            return redirect('/success/')
    return render(request, 'login.html')

……具体内容请下载后查看哦~

这段代码是一个基于Django的用户登录功能实现。

首先,引入了必要的库和模块,包括renderredirect函数用于渲染模板和重定向,User模型用于操作用户信息,wraps装饰器用于保留被装饰函数的元数据。

接下来,定义了一个装饰器check_login,用于检查用户是否登录。装饰器的作用是在被装饰的函数执行之前,先检查当前用户的登录状态。如果用户已经登录,就执行被装饰的函数;如果用户未登录,就重定向到登录页面。

然后,定义了login函数,用于处理用户登录请求。首先判断请求的方法是否是POST,如果是,则获取用户提交的用户名和密码。接着使用这些数据去查询数据库,看是否存在对应的用户。如果存在,就设置用户的登录状态和相关信息,并重定向到成功页面。如果不存在,就返回登录页面。

最后,定义了一个被check_login装饰的函数success,用于展示登录成功后的页面。该函数首先从会话中获取用户ID,然后使用该ID去查询数据库,获取对应的用户信息。如果查询到了用户信息,就渲染成功页面并传递用户对象给模板;如果没有查询到用户信息,就渲染成功页面并传递一个匿名用户对象给模板。

整体来说,这段代码实现了一个简单的用户登录功能,并使用装饰器对需要登录才能访问的页面进行了保护,确保只有已登录用户才能访问。

4.模型函数

双击打开user文件夹的models.py文件,填入以下代码:

Web实战丨基于Django与HTML的用户登录验证系统,《 Python实战项目100例 》,《 Web大作业 》,前端,django,数据库

from django.db import models

# Create your models here.

class User(models.Model):
    username = models.CharField(max_length=16)
    password = models.CharField(max_length=32)

这段代码定义了一个名为User的Django模型,表示用户信息。

User模型继承自models.Model类,通过继承该类可以获得Django提供的数据库操作功能。

User模型中定义了两个字段:usernamepasswordusername字段是一个字符型字段,通过max_length参数指定了最大长度为16个字符;password字段也是一个字符型字段,通过max_length参数指定了最大长度为32个字符。

通过这些字段的定义,可以轻松地在数据库中创建一个名为User的表,用于存储用户的用户名和密码。

在Django中,模型类的字段对应着数据库表中的列,模型类的对象对应着数据库表中的行。通过模型类的对象,可以方便地进行数据库的增删改查操作。

5.导航函数

双击打开login文件夹的url.py文件,填入以下代码:(注意导航函数在login里面,user里面没有导航函数哦)

Web实战丨基于Django与HTML的用户登录验证系统,《 Python实战项目100例 》,《 Web大作业 》,前端,django,数据库

from django.contrib import admin
from django.urls import path
from user import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('login/', views.login),
    path('success/', views.success),
]

这段代码定义了Django项目的URL路由配置。

首先,导入了admin模块和path函数。

然后,定义了一个名为urlpatterns的列表,用于设置URL路由规则。

urlpatterns列表中,有三个URL路由规则:

  1. path('admin/', admin.site.urls),:将admin/路径映射到admin.site.urls,这样可以访问Django的后台管理界面。

  2. path('login/', views.login),:将login/路径映射到views.login函数,这个函数用于处理用户登录的逻辑。

  3. path('success/', views.success),:将success/路径映射到views.success函数,这个函数用于展示登录成功后的页面。

每个URL路由规则都由两部分组成:路径和视图函数。当用户访问某个路径时,Django会根据URL路由配置中的规则,将请求交给相应的视图函数进行处理。

在这段代码中,views.loginviews.success是两个视图函数,分别处理用户登录和登录成功后的页面展示逻辑。

6.模板文件

user目录下面新建一个templates子目录,然后新建两个模板文件:

Web实战丨基于Django与HTML的用户登录验证系统,《 Python实战项目100例 》,《 Web大作业 》,前端,django,数据库

  • login.html:登录界面
<body>
<h1>欢迎来到登录界面!</h1>
<form action="/login/" method="post">
    {% csrf_token %}
    <p>
        用户名:
        <input type="text" name="username">
    </p>
    <p>
        密码:
        <input type="text" name="password"
    </p>
    <p>
        <input type="submit" value="登录">
    </p>
    <hr>
</form>
</body>

这段代码是一个HTML模板,用于呈现用户登录界面。

<body>标签中,展示了一个标题<h1>欢迎来到登录界面!</h1>,用于显示登录页面的标题。

接着是一个表单<form>,它的action属性指定了表单提交的URL为/login/method属性指定了表单提交的方式为POST。

在表单内部,使用了Django模板引擎提供的{% csrf_token %}标签,用于生成一个跨站点请求伪造保护的表单令牌。

接下来是两个输入框,分别用于输入用户名和密码。<input>标签的type属性分别设置为textname属性设置为usernamepassword,以便在后端代码中获取用户输入的值。

最后,是一个提交按钮<input type="submit" value="登录">,用于提交表单。

在这个模板中,通过使用Django的模板语言,可以方便地嵌入动态内容和表单验证等功能。

  • success.html:登录成功界面
<body>
<h1>这是一个登录成功的页面</h1>
<p>欢迎:{{user.username}}</p>
</body>

这段代码是一个HTML模板,用于呈现用户登录成功后的页面。

<body>标签中,首先展示了一个标题<h1>这是一个登录成功的页面</h1>,用于显示页面的标题。

接着使用了Django模板引擎提供的变量语法{{user.username}},用于动态显示登录用户的用户名。变量user.username中的user对应Django视图函数中传递给模板的{"user": userobj[0]}.username表示取出user对象的username属性。

通过这样的方式,模板可以根据视图函数传递过来的动态数据,生成个性化的页面内容。在这个模板中,展示了欢迎信息,即登录用户的用户名。

7.创建数据库

在终端输入以下命令创建(迁移)数据库

python manage.py makemigrations
python manage.py migrate

8.启动项目

  1. 我们首先需要创建一个用户,在终端输入以下命令进入python shell
python manage.py shell
  1. 创建一个用户用于登录(账号:Wan595;密码:Want595)

Web实战丨基于Django与HTML的用户登录验证系统,《 Python实战项目100例 》,《 Web大作业 》,前端,django,数据库

>>> from user.models import User
>>> User.objects.create(username="Want595", password="Want595")
>>> exit()
  1. 在终端输入以下命令启动项目
python manage.py runserver
  1. 如果出现以下网址,说明项目启动成功啦!
    Web实战丨基于Django与HTML的用户登录验证系统,《 Python实战项目100例 》,《 Web大作业 》,前端,django,数据库
  2. 最后要注意:
  • 我们的登录网址并不是上面红圈圈的"http://127.0.0.1:8000/"哦
  • 应该是"http://127.0.0.1:8000/login"
  • 至于为什么呢,就留给大家自己思考叭~
  • 如果输入网址"http://127.0.0.1:8000/success"又会出现什么结果呢?

运行结果

  1. 登录界面

Web实战丨基于Django与HTML的用户登录验证系统,《 Python实战项目100例 》,《 Web大作业 》,前端,django,数据库

  1. 登录成功界面

Web实战丨基于Django与HTML的用户登录验证系统,《 Python实战项目100例 》,《 Web大作业 》,前端,django,数据库

写在后面

我是一只有趣的兔子,感谢你的喜欢!文章来源地址https://www.toymoban.com/news/detail-824496.html

到了这里,关于Web实战丨基于Django与HTML的用户登录验证系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Django用户登录验证和自定义验证类

    用户登录时,使用 authenticate 验证用户名和密码是否正确,正确则返回一个用户对象。 用户名默认的字段名是 username 密码默认的字段名是 password 将已验证的用户添加到当前会话(session)中,可使用 login() 函数完成。 注意,如果用户未登录,logout() 不会报错。 调用 logout() 后,

    2024年02月14日
    浏览(40)
  • Python web实战之Django用户认证详解

    Python Web 开发、Django、用户认证、实战案例   今天来探讨一下 Django 的用户认证吧!在这篇文章中,我将为大家带来一些有关 Django 用户认证的最佳实践。   在开发 Web 应用程序时,用户认证是一个最常用的功能。它能够确保用户的安全性和隐私,并且为应用程序提供了个性化

    2024年02月14日
    浏览(48)
  • Django教程第4章 | Web开发实战-三种验证码实现

    验证码的存在是为了防止系统被暴力破解攻击,几乎每个系统都有验证码。下面将介绍三种生成验证码方式。 您可以根据你自己的需要进行学习。   安装绘图依赖,利用的是画图模块  PIL  以及随机模块  random  在后台生成一个图片和一串随机数,然后保存在内存中。 编写

    2024年01月15日
    浏览(45)
  • 全网最详细,web自动化测试窗口框架与验证码登录处理(超详细实战)

    selenium的作用域切换 selenium在处理元素时遇见新窗口、网页嵌套网页、网页的原生弹窗,无法进行直接处理作用域里元素的内容,需要通过切换作用域来处理此类问题。 Selenium4自动化测试:https://www.bilibili.com/video/BV1MS4y1W79K/ selenium三种作用域切换: ①、window窗口切换 ②、if

    2024年02月07日
    浏览(46)
  • Django实战项目-学习任务系统-用户注册

    接着上期代码框架,开发第2个功能,用户注册,在原有用户模型基础上,增加一个学生用户属性表,用来关联学生用户的各种属性值,这个属性表是参考网络小说里系统属性值设计的,方便直观了解用户的能力高低,等级以及积分值等信息。 第一步:编写第二个功能-用户注

    2024年02月07日
    浏览(41)
  • Python Django的学生选课管理系统,实现多用户登录注册,可选课可评课

    学生选课管理系统是一个基于Python Django开发的教务管理系统,旨在提供方便快捷的选课服务和学籍管理功能。该系统分为教师端和学生端两个角色,为教师和学生提供了不同的功能和权限。 教师端功能: 教师可以登录系统后,进行课程管理、成绩录入和学生管理等操作。具

    2024年01月24日
    浏览(48)
  • Vue项目实战——【基于 Vue3.x + Vant UI】实现一个多功能记账本(登录注册页面,验证码)

    系列内容 参考链接 基于 Vue3.x + Vant UI 的多功能记账本(一) 项目演示,涉及知识点 基于 Vue3.x + Vant UI 的多功能记账本(二) 搭建开发环境 基于 Vue3.x + Vant UI 的多功能记账本(三) 开发导航栏及公共部分 项目演示 Vue3 + Vant UI_多功能记账本 1、登录注册页面 页面设计,页面

    2024年02月03日
    浏览(68)
  • Django用户认证: 利用Django Auth模块实现用户注册、登录与登出

    用户登录注册属于用户认证的一部分,Django内置了一套用户认证体系,使用起来比较方便,而且支持用户定制和拓展,足以满足任何复杂的业务需求。 Django框架中,用户权限管理被划分为三个层次: 用户 :系统使用者,拥有自己的权限。可被一个或多个用户组包含。 用户组

    2023年04月20日
    浏览(53)
  • 3-3. SpringBoot项目集成【用户身份认证】实战 【全流程篇】基于JWT+双重检查的登录+登出+拦截器

    书接上文 实战核心篇,我们已经 把JWT的核心代码实现了! 文中不止是代码实现,更是使用到了设计原则,提升大家的内功心法。并且抛转引玉的实现了RSA和HMAC两种算法,还没看过的同学,建议先看上文。所以对于 基于JWT的Token用户身份认证机制 来说,剩下的就是与接口结

    2023年04月16日
    浏览(48)
  • Django笔记三十二之session登录验证操作

    本文首发于公众号:Hunter后端 原文链接:Django笔记三十二之session登录验证操作 这一篇笔记将介绍 session 相关的内容,包括如何在系统中使用 session,以及利用 session 实现登录认证的功能。 这篇笔记将分为以下几个内容: session 的使用流程 session 的配置和相关方法 users 模块的

    2024年02月01日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包