首先在template模板文件夹中新建account子文件夹,用于存放用户管理相关模块页面。

下面开始正式的设计:

1、模块代码设计

{% extends 'base.html' %}
{% block content %}
<div style="margin-top: 16px;">
<a href="{% url 'user_add' %}" class="btn btn-primary btn-sm">新增用户</a>
</div>
<div class="card mt-3">
<div class="card-header">用户列表</div>
<div class="card-body">
<table class="table table-bordered">
<thead>
<tr>
<th>序号</th>
<th>用户名</th>
<th>邮箱</th>
<th>第一次登录时间</th>
<th>最后的登录时间</th>
<th>操作</th>
</tr>
</thead>
{% if error_msg %}
<p class="error">{{ error_msg }}</p>
{% else %}
<tbody>
{% for user in user_list %}
<tr>
<td>{{ user.id }}</td>
<td>{{ user.username }}</td>
<td>{{ user.email }}</td>
<td>{{ user.first_name }}</td>
<td>{{ user.last_name }}</td>
<td>
{# <div class="btn-group btn-group-sm">#}
{# <a class="btn btn-primary " href="{% url 'user_edit' user.id %}">编辑</a>#}
{# <a class="btn btn-danger " href="{% url 'user_delete' user.id %}"#}
{# onclick="return confirm('确定要删除吗?')">删除</a>#}
{# </div>#}
{# <a class="btn btn-primary btn-xs" href="{% url 'user_edit' user.id %}">编辑</a>#}
{# <a class="btn btn-danger btn-xs" href="{% url 'user_delete' user.id %}"#}
{# onclick="return confirm('确定要删除吗?')">删除</a>#}
<a class="btn btn-primary btn-sm" href="{% url 'user_edit' user.id %}">编辑</a>
<a class="btn btn-danger btn-sm" href="{% url 'user_delete' user.id %}"
onclick="return confirm('确定要删除吗?')">删除</a>
</td>
</tr>
{% endfor %}
</tbody>
{% endif %}
</table>
</div>
</div>
{% endblock %}

2、路由设计:

主路由:

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static urlpatterns = [
  # ... 其他 URL 模式 ...
  path('myapp/', include('MyApp.urls')),
]

子路由:

from django.urls import path

from . import views

urlpatterns = [
# ... 其他 URL 模式 ...
path('user/list/', views.user_list_view, name='user_list'),
]

3、视图设计:

@login_required
def user_list_view(request):
users = User.objects.all
if users:
return render(request, 'account/user_list.html', {'user_list': users})
else:
error_msg = "No data was found"
return render(request, 'account/user_list.html', {'error_msg': error_msg})

4、base.html菜单链接设置:

 <li class="nav-item active">
<a class="nav-link" href="{% url 'user_list' %}">用户管理 <span class="sr-only">(current)</span></a>
</li>

5、效果展示:

Django4全栈进阶之路16 项目实战(用户管理):user_list.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全栈开发之路 【第一篇】:Python 介绍

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

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

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

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

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

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

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

随机推荐

  1. RecyclerView显示列表

    本次要讲的内容是利用RecyclerView显示Users列表的信息,如下图所示. 首先我们来创建模型User.java package com.example.mytest.User; import ...

  2. subline Text 设置中文

    subline Text是一个轻量级的文本编辑器,类似于记事本,不过它拥有代码高亮,简约好看的主题. 下载地址:https://download.sublimetext.com/sublime_tex ...

  3. 在golang中如何正确判断接口是否为nil

    本文主要来分析一下在golang中,如何判断interface是否为nil,以及相关注意事项. 正常情况下,我们声明一个interface类型的变量,默认值将会返回nil,以golang自带的io.W ...

  4. DSC:数仓SQL脚本迁移的神奇工具

    摘要:本文介绍的DSC工具是针对数据库切换时面临的迁移任务而开发的免安装命令行工具.目的是提供简单.快速.可靠的SQL脚本迁移服务. 本文分享自华为云社区<GaussDB(DWS)DSC工具系列 ...

  5. NET 8 预览版 2 亮点是Blazor

    .NET 团队在2023年3月14日发布了.NET 8预览版2,博客文章地址:https://devblogs.microsoft.com/dotnet/announcing-dotnet-8-pre ...

  6. PGF 概率生成函数 Probability generating function

    Probability Mass Function 离散随机变量的分布函数PMF 目录 随机结构举例 two classical combinatorial distributions PGF Pro ...

  7. Spring Bean 的生命周期(详细解读)

    Spring Bean 的生命周期简单易懂.在一个 bean 实例被初始化时,需要执行一系列的初始化操作以达到可用的状态.同样的,当一个 bean 不再被调用时需要进行相关的析构操作,并从 bean ...

  8. Win11右键菜单改回传统样式

    Win11右键菜单,比较不人性化,隐藏了一些常用选项,需要点"更多选项"才能显示,多次一举. 解决方法,一句话: reg.exe add "HKCU\Software\C ...

  9. [ElasticSearch]修改开源安全组件Search Guard-6 用户密码

    ES有很多的安全组件可用,例如: X-pack,Sarch Guard.但目前开源免费的,仅Search Guard. 1 前置条件 Elastic Search 6 服务安装成功,且成功运行. ES ...

  10. 五月十二号java基础知识点

    1.注解是代码中特殊标记,作用是告知编译器做什么事2.反射允许程序在运行状态时,对任意一个字节码获取它所有信息3.内部类是定义在类中的嵌套类4.匿名内部类是定义在类的同时创建该类的一个对象5.lamb ...