第11次:用户注册(简要版)
1、定义模板
在templates文件夹下边新建register.html,代码如下:
<html lang="en">
<head><meta charset="UTF-8"><title>注册</title>
</head>
<body><!--{%是模板标签,
其作用是解析视图函数对应的URL模式。
auth_app对应的是此应用的urls.py中的app_name的值,即应用的命名空间
register对应的是urls.py是某个url模式的别名-->
<form action="{% url 'auth_app:register' %}" method="POST">{% csrf_token %}<div style="margin:0 auto;width: 500px"><table><tr style="text-align: left"><td><label>用户名</label></td><td><input type="text" name="username"></td></tr><tr style="text-align: left"><td><label>密码</label></td><td><input type="password" name="password"></td></tr><tr style="text-align: left"><td><label>确认密码</label></td><td><input type="password" name="check_password"></td></tr></table><div style="margin:0 auto;width: 300px"><!--{% 为模板标签,一般用于文本输出或流程控制-->{% if state %}<!-- {{是模板变量,其值由视图函数传递过来--><p style="color: red">{{ state }}</p>{% endif %}</div><button type="submit">注册</button></div>
</form>
</body>
</html>
2、定义对应的视图类
在auth_app/views.py文件中定义处理用户注册请求的视图类RegisterView(),分别处理浏览器发起的GET请求和POST请求。
auth_app/views.py
完整代码如下:
from django.contrib.auth.decorators import login_required
from django.contrib.auth.models import User
from django.shortcuts import render, redirect
from django.urls import reverse
from django.views import View
from django.contrib.auth import authenticate, login, logout# 注册
class RegisterView(View):"""此视图类用于响应http://127.0.0.1:8000/register的GET与POST请求"""def get(self, request):"""处理GET请求"""state = request.GET.get('state', '')print('GET请求 state=', state)return render(request, 'register.html', {'state': state})def post(self, request):"""处理POST请求"""# 1、接收请求参数,用户名、密码和确认密码username = request.POST.get('username', '')password = request.POST.get('password', '')check_password = request.POST.get('check_password', '')# 2、校验请求参数# 判断两次密码是否一致if password != check_password:state = '两次密码输入不一致,请重新输入!'return render(request, 'register.html', {'state': state})username_exists = User.objects.filter(username=username).exists()# 判断用户名是否已被注册if username_exists:state = '该用户名已被注册,请登录!'else:# 执行注册user = User.objects.create_user(username=username, password=password)# 3、保存注册数据user.save()state = '注册成功,请登录!'# 4、返回注册结果,在第10次课有登录页面时使用# return redirect(reverse('auth_app:login') + '?state={}'.format(state))# 注册时的重定向,第9次课使用return redirect(reverse('auth_app:register') + '?state={}'.format(state))
- 处理get请求。当后端接收到用户通过浏览器发起的get请求后,调用RegisterView()里的get()方法处理GET请求,并返回register.html页面。
- 注册数据通过前端校验之后,用户单击注册按钮,浏览器会向后端发送POST请求,Django接收注册页面发来的POST请求,调用RegisterView类中的post()方法处理该请求。post()方法对POST请求的处理可以分为4步:接受请求参数,校验请求参数、保存注册数据、返回注册结果。
3、配置路由
根路由urls.py中:
path('', include('auth_app.urls'))
子路由baicai/auth_app/urls.py中:
from django.urls import path
from . import views
app_name ='auth_app'
urlpatterns = [path('register/', views.RegisterView.as_view(), name='register'),
]
python manage.py runserver运行项目
浏览器访问http://127.0.0.1:8000/register,输入用户名,密码以及确认密码,点击注册可进行注册。
刷新navicat里的goods数据库auth_user表,可以看到新创建的用户。
相关文章:
第11次:用户注册(简要版)
1、定义模板 在templates文件夹下边新建register.html,代码如下: <html lang"en"> <head><meta charset"UTF-8"><title>注册</title> </head> <body><!--{%是模板标签, …...
【IP101】图像特征提取技术:从传统方法到深度学习的完整指南
🌟 特征提取魔法指南 🎨 在图像处理的世界里,特征提取就像是寻找图像的"指纹",让我们能够识别和理解图像的独特性。让我们一起来探索这些神奇的特征提取术吧! 📚 目录 基础概念 - 特征的"体…...
对windows的简单介绍
目录 一、Windows 操作系统概述 1. 定义与定位 2. 核心目标 二、历史与版本演变 1. 早期阶段(1985–1995) 2. NT 内核时代(1996–2009) 3. 现代操作系统(2012–至今) 三、系统架构与技术特性 1. 内…...
Waymo公司正在加快其位于亚利桑那州新工厂的无人驾驶出租车(robotaxi)生产进度
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
JavaSE核心知识点01基础语法01-03(流程控制:顺序、分支、循环)
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 JavaSE核心知识点01基础语法01-03࿰…...
信息论01:从通信到理论的飞跃
信息论01:从通信到理论的飞跃 1. 信息论的诞生与发展 1.1 前信息论时代(1920s之前) 信息与消息的混淆:传统认知中将信息等同于消息本身先驱者奠基: 哈里奈奎斯特 (1924):提出《影响电报速度的某些因素》…...
Pandas 的透视与逆透视
目录 1. 透视 1.1 pivot 1.2 pivot_table 2.逆透视 1. 透视 透视是长表变宽表。 pivot() 和 pivot_table()两个函数都可以做到,后者可以聚合前者不行。 特性df.pivot()df.pivot_table()重复值处理要求索引和列的组合唯一,否则报错 ValueError允许…...
AI大模型驱动的智能座舱研发体系重构
随着AI大模型(如LLM、多模态模型)的快速发展,传统智能座舱研发流程面临巨大挑战。传统座舱研发以需求驱动、功能固定、架构封闭为特点,而AI大模型的引入使得座舱系统向自主决策、动态适应、持续进化的方向发展。 因此思考并提出一…...
【东枫科技】代理英伟达产品:DPU
NVIDIA BlueField-3 DPU 400Gb/s 基础设施计算平台 NVIDIA BlueField -3 数据处理单元 (DPU) 是第三代基础设施计算平台,使企业能够构建从云端到核心数据中心再到边缘的软件定义、硬件加速的 IT 基础设施。借助 400Gb/s 以太网或 NDR 400Gb/s InfiniBand 网络连接…...
【KWDB 创作者计划】一文掌握KWDB的时序表管理
前言 本文是在对时序数据库有一定了解,并且KWDB的数据库操作了解后进行学习的文章安排,如果对时序数据库与KWDB的数据库操作还不怎么了解的可以查阅官网的文档进行提前学习,当有了这些基础后,本文就是对时序数据表的一个管理操作…...
《算法导论(第4版)》阅读笔记:p9-p9
《算法导论(第4版)》学习第 6 天,p9-p9 总结,总计 1 页。 一、技术总结 1. data structure A data structure is a way to store and organize data in order to facilitate access and modifications(数据结构是一种存储和组织数据的方式,…...
Facebook隐私保护措施的优缺点解析
在这个数字化的时代,隐私保护已成为公众关注的热点话题。Facebook,作为全球最大的社交媒体平台之一,其隐私保护措施自然也受到了广泛的关注和讨论。本文将对Facebook的隐私保护措施进行解析,探讨其优点与缺点,并探讨如…...
深入了解linux系统—— 进程地址空间
前言 程序地址空间 在之前,我们学习C/C时,多多少少都看过这样的一张图 我们现在通过下面这一段代码看一下: #include <stdio.h> #include <unistd.h> #include <stdlib.h> int g_unval; int g_val 100; int main(int…...
电动加长杆金属硬密封法兰式蝶阀泄漏等级解析:水、蒸汽、油品介质的可靠选择-耀圣
电动加长杆金属硬密封法兰式蝶阀泄漏等级解析:水、蒸汽、油品介质的可靠选择 在工业流体控制领域,电动金属硬密封蝶阀凭借其卓越的密封性能和耐高温高压特性,成为水、蒸汽、油品等介质的核心控制设备。其泄漏等级作为衡量阀门性能的关键指标…...
win11共享打印机主机设置
1.首先打开设置,选择打印机和扫描仪点击打印机属性,将共享窗口的共享这台打印机和在客户端计算机上呈现打印作业这两项勾选上。 2.通过cmd命令 gpedit.msc 打开本地组策略编辑器。 3.网络访问选择仅来宾 4.将账户来宾状态选择启用 5.将拒绝从网络访问这台…...
Flowable7.x学习笔记(二十)查看流程办理进度图
前言 本文是基于继承Flowable的【DefaultProcessDiagramCanvas】和【DefaultProcessDiagramGenerator】实现的自定义流程图生成器,通过自定义流程图生成器可以灵活的指定已经执行过的节点和当前正在活跃的节点样式,比如说已经执行完成的节点我们标绿&…...
【计算机网络 第8版】谢希仁编著 第四章网络层 地址类题型总结
小结 个人觉得地址类在网络层算好做的题,这部分知识本身并不多,理解到位了就是2进制和10进制的换算题了。而且这种题给你一小时例题和标答,肯定自己都能悟出来。但是计网网络层的整体我感觉很散,老师讲的也乱七八糟的,…...
一种基于条件生成对抗网络(cGAN)的CT重建算法
简介 简介:该文提出了一种基于条件生成对抗网络(cGAN)的CT重建算法,通过引入CBAM注意力机制增强网络对关键特征的提取能力,有效解决了CT成像中因噪声干扰导致的重建精度下降问题。实验采用固体火箭发动机模拟件数据集,将正弦图分为五组并添加不同程度的噪声进行训练。结…...
欧拉系统(openEuler)上部署OpenStack的完整指南 ——基于Yoga版本的全流程实践
(资源区里有上传的配置好的openstack镜像) 一、环境规划与前置准备 1. 硬件与节点规划升级 存储节点(可选):若需Cinder后端,建议配置SSDHDD混合存储网络拓扑强化: 管理网络:启用V…...
oceanbase不兼容SqlSugarCore的问题
问题发现 C#程序使用SqlSugarCore5.1.4.166进行数据库操作,而且项目需要在多台服务器上面部署,结果发现A服务器部署运行没有问题, B服务器部署却报错:SqlSugar.SqlSugarException:Connect timeout expired. 但是我们的C#代码是一…...
深入理解分布式锁——以Redis为例
一、分布式锁简介 1、什么是分布式锁 分布式锁是一种在分布式系统环境下,通过多个节点对共享资源进行访问控制的一种同步机制。它的主要目的是防止多个节点同时操作同一份数据,从而避免数据的不一致性。 线程锁: 也被称为互斥锁(…...
OrangePi Zero 3学习笔记(Android篇)1 - 搭建环境
目录 1. 下载安装Ubuntu22.04 1.1 安装增强功能 1.2 设置共享文件夹 1.3 创建AOSP.vdi 1.4 更新相关软件包 2. 解压AOSP源代码 3. 编译代码 3.1 编译uboot/Linux 3.2 编译AOSP源代码 3.3 内存问题调试记录 3.3.1 查看具体什么问题 3.3.2 关闭dex2oat(无…...
RabbitMq(尚硅谷)
RabbitMq 1.RabbitMq异步调用 2.work模型 3.Fanout交换机(广播模式) 4.Diret交换机(直连) 5.Topic交换机(主题交换机,通过路由匹配) 6.Headers交换机(头交换机) 6…...
OpenAI的“四面楚歌”:从营利到非营利,一场关于AGI控制权的革命
引言 当“奥特曼妥协”与“四面楚歌”并置时,OpenAI的这次重大调整,仿佛在科技史上投下一颗震撼弹。这家曾因“拒绝盈利”而备受争议的人工智能公司,如今却在资本与理想之间艰难抉择——放弃营利性转型,回归非营利初心。这不仅是对…...
[250505] Arch Linux 正式登陆 Linux 的 Windows 子系统
目录 Arch Linux 正式登陆 Windows Subsystem for Linux (WSL) Arch Linux 正式登陆 Windows Subsystem for Linux (WSL) Arch Linux 社区与 Microsoft 合作,正式宣布 Arch Linux 现已提供官方的 Windows Subsystem for Linux (WSL) 镜像。这意味着 Windows 用户现…...
MySQL 日期格式化:DATE_FORMAT 函数用法
MySQL 日期格式化:DATE_FORMAT 函数用法 在 MySQL 中,DATE_FORMAT() 函数用于将日期或时间值格式化为指定的字符串格式。 正确语法 DATE_FORMAT(date, format)常用格式说明符 说明符描述%Y四位数的年份(例如:2023)…...
java springboot解析出一个图片的多个二维码
引入 <dependencies><!-- ZXing --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.4.1</version></dependency><dependency><groupId>com.google.zxing…...
【四川省专升本计算机基础】第一章 计算机基础知识(上)
前言 对计算机专业的同学来说这门课程可能很简单,容易拿高分(125分以上),但也可能很容易大意丢分。因为本门课程人称:背多分。大意丢分者的心态觉得计算机基础都学过,内容很简单,最后才开始背计…...
406错误,WARN 33820 --- [generator] [nio-8080-exec-4] .w.s.m.s.DefaultHa
在接口调用过程中,后端出现.w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.HttpMediaTypeNotAcceptableException: No acceptable representation]错误。检查了一个小时才发现我返回的对象没有写getter方法, 当Spring B…...
基于STM32、HAL库的SST26VF064B NOR FLASH存储器驱动应用程序设计
一、简介: SST26VF064B是Microchip公司生产的一款64Mbit(8MB)串行闪存器件,采用SPI接口通信,具有以下特点: 工作电压:2.7-3.6V 最高104MHz时钟频率 统一4KB扇区结构 快速擦除和编程时间 低功耗特性 支持标准SPI、Dual SPI和Quad SPI模式 二、硬件接口: STM32L4引脚SST26V…...
美信监控易:全栈式自主可控的底层架构优势
在当今数字化时代,企业的运维管理面临着越来越多的挑战。为了确保业务的稳定运行,企业需要一款高效、可靠的运维管理软件。北京美信时代的美信监控易运维管理软件,以其全栈式自主可控的底层架构优势,成为了运维团队的理想选择。 …...
Class AB OPA corner 仿真,有些corenr相位从0开始
Class AB OPA做 STB 仿真时,会遇到有些corner(c0_0、c0_4、c0_5)相位从0开始的情况。 首先应该去检查电路,电路里是否有正反馈;排除没有正反馈后,考虑是图中的红框中的线性跨导环中的Vds 太大导致了碰撞电离导致的。 查找了网上…...
【JEECG】BasicTable单元格编辑,插槽添加下拉组件样式错位
1.功能说明 BasicTable表格利用插槽,添加组件实现单元格编辑功能,选择组件下拉框错位 2.效果展示 3.解决方案 插槽内组件增加::getPopupContainer"getPopupContainer" <template #salesOrderProductStatus"{ column, re…...
第十五届蓝桥杯单片机国赛-串口解析
串口通信像是蓝桥杯单片机组国赛中一个若隐若现的秘境,总在不经意间为勇者们敞开大门。然而,初次探索这片领域的冒险者,常常会被其神秘莫测的特性所震慑,黯然退场(编不下去了,直接进入正题)。 附…...
Flutter开发HarmonyOS实战-鸿蒙App商业项目
Flutter开发HarmonyOS实战内容介绍: Flutter开发HarmonyOS 鸿蒙App商业项目(小米商城APP)实战视频教程 Flutter开发鸿蒙APP是在《FlutterGetx仿小米商城》项目基础之上讲解的,调试Flutter HarmonyOS应用需要有HarmonyOS Next的手机…...
【回眸】香橙派Zero2 超声波模块测距控制SG90舵机转动
前言 知识准备 超声波模块时序图 gettimeofday()函数作用 gettimeofday()函数原型 tv结构体 获取当前系统时间与格林威治时间的时间差 获取香橙派数10万秒花费的时间 使用超声波模块获取到障碍物距离 SG90舵机模块 舵机模块的作用 舵机模块方波时序图 舵机模块工作原…...
RabbitMQ 添加新用户和配置权限
以下是关于使用 sudo rabbitmqctl add_user 命令创建新用户的详细示例,同时包含创建用户后进行权限设置、角色设置等相关操作的示例。 1. 前提条件 确保你的 RabbitMQ 服务已经正常运行,并且你具有执行 sudo 命令的权限。 2. 创建新用户 假设我们要创…...
【前缀和】矩阵区域和
文章目录 1314. 矩阵区域和解题思路1314. 矩阵区域和 1314. 矩阵区域和 给你一个 m x n 的矩阵 mat 和一个整数 k ,请你返回一个矩阵 answer ,其中每个 answer[i][j] 是所有满足下述条件的元素 mat[r][c] 的和: i - k <= r <= i + k, j - k <= c <= j + k …...
编程日志4.25
栈的stl模板 可直接用<stack>库进行调用 #include<iostream> #include<stack>//栈的模板库 using namespace std; int main() { stack<int> intStk;//整数 栈 stack<double> doubleStk;//浮点数 栈 intStk.push(1); intStk.pu…...
【中间件】brpc之工作窃取队列
文章目录 BRPC Work Stealing Queue1 核心功能2 关键数据结构2.1 队列结构2.2 内存布局优化 3 核心操作3.1 本地线程操作(非线程安全)3.2 窃取操作(线程安全) 4 设计亮点4.1 无锁原子操作4.2 环形缓冲区优化4.3 线程角色分离 5 性…...
用OMS从MySQL迁移到OceanBase,字符集utf8与utf8mb4的差异
一、问题背景 在一次从MySQL数据库迁移到OceanBase的MySQL租户过程中,出现了一个转换提示: [WARN][CONVER] he table charset:utf8->utf8mb4, 你可能会担心这种转换可能导致字符集不兼容的问题。但通过查阅相关资料可知,utf8m…...
知乎前端面试题及参考答案
Webpack 和 Vite 的区别是什么? 构建原理: Webpack 是基于传统的打包方式,它会将所有的模块依赖进行分析,然后打包成一个或多个 bundle。在开发过程中,当代码发生变化时,需要重新构建整个项目,构建速度会随着项目规模的增大而变慢。Vite 利用了浏览器对 ES 模块的支持,…...
项目中为什么选择RabbitMQ
当被问及为什么选择某种技术时,应该结合开发中的实际情况以及类似的技术进行分析,适合的技术才是最好的。 在项目中为什么选择RabbitMQ 作为消息中间件,主要可以基于以下几方面进行分析: 1. 可靠性 消息持久化:Rabbi…...
深入解析二维矩阵搜索:LeetCode 74与240题的两种高效解法对比
文章目录 [toc]**引言** **一、问题背景与排序规则对比****1. LeetCode 74. 搜索二维矩阵****2. LeetCode 240. 搜索二维矩阵 II** **二、核心解法对比****方法1:二分查找法(适用于LeetCode 74)****方法2:线性缩小搜索范围法&…...
Qt案例 以单线程或者单生产者多消费者设计模式实现QFTP模块上传文件夹功能
前文:Qt案例 使用QFtpServerLib开源库实现Qt软件搭建FTP服务器,使用QFTP模块访问FTP服务器 已经介绍了Qt环境下搭建FTP服务器或者使用QFTP上传的方式示例, 这里主要介绍下使用QFTP模块上传整个文件夹的案例示例。 目录导读 前因后果单线程处理1.定义FTPFolderUpload 继承 QT…...
含锡废水回收率提升技术方案
一、预处理环节优化 物理分离强化 采用双层格栅系统(孔径1mm0.5mm)拦截悬浮物,配套旋流分离器去除密度>2.6g/cm的金属颗粒,使悬浮物去除率提升至85%。增设pH值智能调节模块,通过在线pH计联动碳酸钠/氢氧化钠投加系…...
第八章,STP(生成树协议)
广播风暴----广播帧在二层环路中形成逆时针或顺时针的转动的环路,并且无限循环,最终导致设备宕机,网络瘫痪。 MAC地址表的翻摆(漂移)----同一个数据帧,顺时针接收后将记录MAC地址及接口的对应信息ÿ…...
《面向对象程序设计-C++》实验五 虚函数的使用及抽象类
程序片段编程题 1.【问题描述】 基类shape类是一个表示形状的抽象类,area( )为求图形面积的函数。请从shape类派生三角形类(triangle)、圆类(circles)、并给出具体的求面积函数。注:圆周率取3.14 #include<iostream> #in…...
PCIe - ZCU106(RC) + KU5P(EP) + 固化
目录 1. 简介 1.1 Data Mover 1.2 描述符 2. ZCU102 2.1 Ubuntu OS 2.2 USB Host 2.2.1 连接拓扑 2.2.2 设备类型 2.2.3 USB 跳帽设置 2.3 无线网卡 2.4 PCIe Info 2.4.1 Diagram 2.4.2 lspci -tv 2.4.3 lspci -v 2.4.2.1 设备基本信息 2.4.2.2 控制与状态寄存…...
网络编程核心技术解析:从Socket基础到实战开发
网络编程核心技术解析:从Socket基础到实战开发 一、Socket编程核心基础 1. 主机字节序与网络字节序:数据传输的统一语言 在计算机系统中,不同架构对多字节数据的存储顺序存在差异,而网络通信需要统一的字节序标准,这…...