1、模块:

{% extends 'base.html' %}
{% block content %}
<div class="card mt-3">
<div class="card-header">新增用户</div>
<div class="card-body">
<form method="post">
{% csrf_token %}
{% if error_msg %}
<p class="error">{{ error_msg }}</p>
{% endif %}
<div class="form-group">
<label for="username">用户名:</label>
<input type="text" id="username" name="username" required class="form-control">
</div>
<div class="form-group">
<label for="password">密码:</label>
<input type="password" id="password" name="password" required class="form-control">
</div>
<div class="form-group">
<label for="email">邮箱:</label>
<input type="email" id="email" name="email" required class="form-control">
</div>
<button type="submit" class="btn btn-primary btn-sm">保存</button>
<a href="{% url 'user_list' %}?success=true" class="btn btn-secondary btn-sm">返回</a>
</form>
</div>
</div>
</div>
{% endblock %}

2、视图:

@login_required
def user_add_view(request):
if request.method == 'POST':
# 获取表单数据
username = request.POST.get('username')
password = request.POST.get('password')
email = request.POST.get('email')
# 判断是否已经存在
if User.objects.filter(username=username).exists():
error_msg = '用户已经存在'
return render(request, 'account/user_add.html', {'error_msg': error_msg})
# 验证数据合法性
if not all([username, password, email]):
# 数据不合法,返回错误信息并重新渲染页面
error_msg = '所有字段都不能为空'
return render(request, 'account/user_add.html', {'error_msg': error_msg})
# 保存到数据库
User.objects.create(username=username, password=password, email=email)
# 重定向到用户列表页面
return redirect('user_list')
else:
# GET请求,渲染新增用户的页面
return render(request, 'account/user_add.html')

3、路由:

urlpatterns = [
# ... 其他 URL 模式 ...
path('user/add/', views.user_add_view, name='user_add'),
]

4、效果:

Django4全栈进阶之路17 项目实战(用户管理):user_add.html用户新增画面设计的更多相关文章

  1. web前端全栈学习之路

    web前端全栈学习之路 --- 陆续更新中 一.HTML相关 1.HTML常用标签:http://www.cnblogs.com/wyb666/p/8733699.html 2.HTML5基础: 3. ...

  2. python 全栈开发之路 day1

    python 全栈开发之路 day1   本节内容 计算机发展介绍 计算机硬件组成 计算机基本原理 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可 ...

  3. 你的Node应用,对接分布式链路跟踪系统了吗?(一) 原创: 金炳 Node全栈进阶 4天前 戳蓝字「Node全栈进阶」关注我们哦

    你的Node应用,对接分布式链路跟踪系统了吗?(一) 原创: 金炳 Node全栈进阶 4天前 戳蓝字「Node全栈进阶」关注我们哦

  4. C#.Net全栈工程师之路-学习路径

    C#.Net全栈工程师之路-学习路径 按架构分: C/S架构: B/S架构: Mobile移动开发: 按技术点分: C#编程基础以及OOP面向对象编程: 数据库基础以及高级应用(MYSQL+MSSQL ...

  5. 战争热诚的python全栈开发之路

    从学习python开始,一直是自己摸索,但是时间不等人啊,所以自己为了节省时间,决定报个班系统学习,下面整理的文章都是自己学习后,认为重要的需要弄懂的知识点,做出链接,一方面是为了自己找的话方便,一方 ...

  6. Python全栈开发之路 【第四篇】:Python基础之函数

    本节内容 函数def: 1.位置参数,默认参数 2.位置参数,关键参数 3.如果参数中出现 *users,传递的参数就可以不再是固定的个数, 传过来的所有元素进行打包成元组 *args,**kwarg ...

  7. Python全栈开发之路 【第七篇】:面向对象编程设计与开发(1)

    本节内容 一.编程范式 编程指的是写程序.敲代码,就是指程序员用特定的语法.数据结构和算法编写的代码,目的是来告诉计算机如何执行任务的. 在编程的世界里最常见的两大流派是:面向过程与面向对象.“功夫的 ...

  8. Python全栈开发之路 【第一篇】:Python 介绍

    本节内容 一.Python介绍 python的创始人为荷兰人——吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本 ...

  9. Python全栈开发之路 【第六篇】:Python基础之常用模块

    本节内容 模块分类: 好处: 标准库: help("modules") 查看所有python自带模块列表 第三方开源模块: 自定义模块: 模块调用: import module f ...

  10. 全栈开发系列学习2——django项目搭建

    项目代码:http://yunpan.cn/cHajgT4HvgHqx (提取码:8350) 配置项目: 1. 首先确保你的机器安装了python和pip,这两种安装比较简单,这里就不说了. 2. 在 ...

随机推荐

  1. 【c语言】整数拆分

    将一个正整数n拆分成若干个正整数的和(至少两个数,n<=100). 输入格式: 一个正整数n 输出格式: 若干行,每行一个等式(数与数之间要求非降序排列).最后一行给出解的总个数 输入样例: 在 ...

  2. Python学习笔记--从继承开始继续

    继承的基础语法 单继承: 多继承:一个子类继承多个父类 pass关键字补全语法 注意事项: 复写和使用父类成员 复写父类成员 也就是相当于Java中的方法重写 调用父类成员 变量的类型注解 举例: 更 ...

  3. 文件的上传&预览&下载学习(一)

    注:主要是说明后端逻辑和数据库表设计 1.当前主流的几种文件上传&预览&下载方式 把文件直接存储在服务器 分布式存储OSS,比如阿里OSS.Minio 2.数据库表设计 由于文件都是跟 ...

  4. Java面试——Spring Boot

    更多内容,移步IT-BLOG 一.谈谈你对 SpringBoot 的理解 简单说说我的理解:Java是一个静态语言,相比动态语言,它相对笨重,体现在我们搭建 SSM 框架写一个 Helloword 的 ...

  5. Linux Redhat ens33不显示IP问题

    [第一步]:查看系统网卡设备 : ip addr show ​

  6. 搞一个自己用的node-cli

    我们都用过 vue 的cli ,或者 react的cli,  亦或是其他的cli 如 vite 等.他们都是提供了一个全局命令,然后在终端执行这个全局命令就可以创建出模板项目.今天我们就自己做一个,给 ...

  7. Android和adb命令

    一.名词解释 1.SDK:是软件开发工具包 2.activity(活动):驱使软件运行的一段程序,软件系统和用户进行交互的界面叫一个活动 二.adb命令 1.查看连接的设备:adb devices 2 ...

  8. WPF 界面布局、常用控件入门教程实例 WPF入门学习控件快速教程例子 WPF上位机、工控串口通信经典入门

    WPF(Windows Presentation Foundation)是一种用于创建 Windows 桌面应用程序的框架,它提供了丰富的控件库和灵活的界面布局,可以创建现代化的用户界面.下面是 WP ...

  9. MySQL之 InnoDB 内存结构

    从MySQL 5.5版本开始默认 使用InnoDB作为引擎,它擅长处理事务,具有自动崩溃恢复的特性,在日常开发中使用非常广泛 下面是官方的InnoDB引擎架构图,主要分为内存结构和磁盘结构两大部分. ...

  10. 快速搭建一个go语言web后端服务脚手架

    快速搭建一个go语言web后端服务脚手架 源码:https://github.com/weloe/go-web-demo web框架使用gin,数据操作使用gorm,访问控制使用casbin 首先添加 ...