基于Django Template模式实现简单的注册、登录,表单提交

2023-10-27

最近在做一个简单的django项目,需求是能实现注册,登录,并且有一个提交评论、展示评论的功能。
django做web项目是非常适合,前期熟悉对应的配置、熟悉框架结构,按照既定的模式进行二次开发即可完成一个完整的系统。
项目目录结构如下:
1、核心功能:登录、注册、表单提交、数据展示
2、利用django的session来判断是否登录状态,看代码就可了解大概。
3、已经集成了layui的前端组件,可自由使用各种现成的组件

源码下载
在这里插入图片描述
运行效果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

核心代码说明:

注册接口

def register(request):
    """
    注册接口
    """
    # 判断请求的类型,如果是post说明是提交注册数据,如果是其他,说明是访问注册页面
    if request.method == 'POST':
        username = request.POST.get('username', None)  # 获取前端传输过来的字段值,下面同类
        sex = request.POST.get('sex', None)
        password = request.POST.get('password', None)
        password2 = request.POST.get('password2', None)
        if password != password2:  # 判断一下前端传过来的两次密码是否一致
            msg = '两次密码不一致,请确认~'
            return render(request, 'register.html', context={'msg': msg})  # 返回到注册页面,同时给出提示
        else:
            user = models.User.objects.filter(user_name=username).first()  # 查询user用户是否存在
            if user:
                msg = '该用户已注册'
                return render(request, 'register.html', context={'msg': msg})  # 如果已经存在,则返回到注册页面,同时给出提示
            try:
                user = models.User(sex=sex, user_name=username, password=password)  # 存储用户数据到数据库中
                user.save()
                print('保存成功!!')
                return render(request, 'login.html')  # 存储成功,则返回到登录页面
            except Exception as e:
                print('保存失败!!', e)
                return render(request, 'register.html', context={'msg': e})  # 存储失败,返回注册页面,给出提示
    else:
        return render(request, 'register.html')  # 如果是非POST请求,则返回注册页面

登录接口

def login(request):
    """
    用户登录接口
    """
    msg = ''
    # 判断请求的类型,如果是post说明是提交登录数据,如果是其他,说明是访问登录页面
    if request.method == 'POST':
        user_name = request.POST.get('username', None)  # 获取前端传输过来的字段值,下面同类
        password = request.POST.get('password', None)
        user = models.User.objects.filter(user_name=user_name).first()  # 根据用户名查询用户
        # print(u,p)
        if user:  # 如果用户存在,则走下面的逻辑,不存在则给出提示
            if password == user.password:  # 判断密码是否一致
                request.session['is_login'] = True  # 把 这些信息写入到session中,用户在后面所有的页面请求中都会带到这些信息
                request.session['user_name'] = user_name
                request.session['user_id'] = user.id
                msg = '登录成功'
                print(msg)
                # 返回home页面,也就是有评论框的页面
                return render(request, 'home.html',
                              context={'user_name': user_name, 'is_login': is_login(request), 'comments': models.Comment.get_all_comments()})
            else:
                msg = '密码不正确,请确认后重新输入~'
                return render(request, 'login.html', context={'msg': msg})  # 返回登录页面,同时给出提示
        else:
            msg = '未注册用户,请先注册~'
            return render(request, 'login.html', context={'msg': msg})  # 返回登录页面,同时给出提示
    else:
        if is_login(request):
            # 返回home页面,也就是有评论框的页面
            user_name = request.session.get('user_name')
            return render(request, 'home.html',
                          context={'user_name': user_name, 'is_login': is_login(request), 'comments': models.Comment.get_all_comments()})
    return render(request, 'login.html', context={'msg': msg})  # 如果是非POST请求,则返回登录页面
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于Django Template模式实现简单的注册、登录,表单提交 的相关文章

随机推荐

  • Vue导出JSON文件,读取本地上传JSON文件

    导出JSON文件 插件安装 import FileSaver from file saver 导出代码 const data JSON stringify 存放JS数组或者对象 const blob new Blob data type a
  • 详解VSCode中C++工程配置

    安装MinGW w64及环境变量配置 下载MinGW w64 可以通过官网直接进行下载在线安装包 然后在本地进行安装即可 但是基本都会由于网络超时等各种原因终止 因此这里建议直接下载 MinGW w64 库解压 然后在系统中指定环境变量即可
  • Verilog中条件编译的使用(`ifdef-`elsif-`else-`endif)

    Verilog中条件编译的使用 ifdef elsif else endif 目录 Verilog中条件编译的使用 ifdef elsif else endif 一 概念 二 格式 2 1条件编译格式 2 2条件语句 三 应用示例 3 1顶
  • 【DevOps核心理念基础】2. 敏捷开发与DevOps关系

    一 什么是敏捷开发 1 1 敏捷开发的核心模型 二 敏捷开发的要点 2 1 敏捷开发 gt 执行细节 2 2 敏捷开发 gt 思路的转变 客户需求 提升出行速度 三 敏捷开发 与 DevOps 四 DevOps 实践的度量标准 4 1 怎样
  • A Survey on Model Compression for Large Language Models

    本文是LLM系列文章 关于模型压缩相关综述 针对 A Survey on Model Compression for Large Language Models 的翻译 大模型的模型压缩综述 摘要 1 引言 2 方法 3 度量和基准 3 1
  • 【MySQL】唯一性约束【UNIQUE】从基础到就业

    唯一约束 unique 用来限制某个字段 某列的值不能重复 唯一约束允许出现 多个空值 同一个表可以有多个唯一约束 唯一约束可以是某一个列的值唯一 也可以多个列组合的值唯一 唯一性约束允许列值为空 在创建唯一约束的时候 如果不给唯一约束命名
  • C#异步通信概念及应用浅析

    转自夜里煞白http developer 51cto com art 200908 145381 htm C 异步通信概念及应用浅析 2009 08 20 18 47 夜里煞白 百度空间 字号 T T C 异步通信概念及应用主要向你介绍了C
  • 腾讯推出混元大模型,已接入微信搜一搜、腾讯会议等 50 多个业务及产品

    作者 宛辰编辑 郑玄 腾讯补上了大模型布局中最重要的一块拼图 9 月 7 日 在 2023 腾讯全球数字生态大会上 腾讯混元大模型正式亮相 并宣布通过腾讯云对外开放 腾讯介绍 混元大模型是由腾讯全链路自研的通用大语言模型 具备强大的中文创作
  • STM32输入捕获可用于编码器测速

    STM32输入捕获 前言 一 输入捕获功能框图 输入捕获应用 输入捕获测电平持续的时间 二 例程代码 关键功能函数说明 前言 本篇目的是解释编码器测速的输入捕获概念 即本人的这篇文章 基于树莓派ROSstm32搭载Freertos智能平衡车
  • 输入框失去焦点时,小数点前面不能以0开头及保留3位小数

    text box blur function obj this val parseFloat this val if this val length this val indexOf 1 gt 3 this val parseFloat t
  • Jenkins API 开发实战

    一 Jenkins扩展 1 共享库简介 共享库由名称 源代码检索方法 如 SCM 和可选的默认版本定义 该名称应该是一个简短的标识符 因为它将在脚本中使用 该版本可以是该 SCM 可以理解的任何内容 例如 分支 标签和提交哈希都适用于 Gi
  • 若依RuoYi-Vue隐藏首页页面

    需要修改两个地方 分别是 路由菜单 注释掉首页菜单 除了首页之外的菜单都是动态获取的 首页是写死的 所以注释掉首页菜单就不会在左边的菜单列表看到首页了 登录按钮的位置 修改路由跳转链接 具体修改如下 1 注释首页菜单 文件位置在 src r
  • C++中的仿函数functor

    引子 先考虑一个简单的例子 假设有一个vector
  • zabbix安装与使用

    安装包地址 https jaist dl sourceforge net project zabbix ZABBIX 20Latest 20Development 4 2 0alpha3 zabbix 4 2 0alpha3 tar gz
  • 区块链开发初学者编程入门指南

    我有很多问题需要了解区块链Blockchain的工作原理 重要的是 我如何在其上构建应用程序dapp 花了几个星期的时间挖掘 阅读和试验才最终了解 我找不到简短而全面的指南 现在 我有一些不错的理解 我想写一个可以帮助别人的 这是一个快速指
  • 计算机网络毕业论文ensp,eNSP实验(一)简单组网实验

    一 前言 计算机网络在很久之前学习过 最近突然对网络安全领域比较感兴趣 所以通过实验的形式重新温习一下计算机网络的相关知识 eNSP实验系列借助华为eNSP软件完成相关实验的组网设计 实验所需的工具包括eNSP软件 Wireshark抓包工
  • React 学习之旅一

    React 学习之旅一 React 官网 版本要求 Node gt 8 10 和 npm gt 5 6 node v npm v 创建 React 项目 npx create react app my app Hook 它可以让你在不编写
  • customEventData的普通用法

    需要先用event来接受一些其他信息 然后传入的数值放在参数中 类型按钮按下 TypeButtonDown event value console log 按下 console log value 然后再button这里设置好eventDa
  • java 实现POI导入导出Excel

    package com chenxc utils excel import org apache poi hssf usermodel import org apache poi hssf util HSSFColor import org
  • 基于Django Template模式实现简单的注册、登录,表单提交

    最近在做一个简单的django项目 需求是能实现注册 登录 并且有一个提交评论 展示评论的功能 django做web项目是非常适合 前期熟悉对应的配置 熟悉框架结构 按照既定的模式进行二次开发即可完成一个完整的系统 项目目录结构如下 1 核