Django学习3——靓号管理

目录

靓号管理

表结构和数据

根据表结构的需求,在models.py中创建类(由类生成数据库中的表) 

在数据库生成表 

自己在数据模拟创建一些数据:

靓号列表

新建靓号

编辑靓号

删除靓号 

搜索靓号



靓号管理

表结构和数据

根据表结构的需求,在models.py中创建类(由类生成数据库中的表) 

class PrettyNum(models.Model):""" 靓号表 """mobile = models.CharField(verbose_name="手机号", max_length=11)# 想要允许为空 null=True, blank=Trueprice = models.IntegerField(verbose_name="价格", default=0)level_choices = (# 写成这样是为了让数据库存储数字,但是页面显示对应的等级(1, "1级"),(2, "2级"),(3, "3级"),(4, "4级"),)level = models.SmallIntegerField(verbose_name="级别", choices=level_choices, default=1)status_choices = ((1, "已占用"),(2, "未使用"))status = models.SmallIntegerField(verbose_name="状态", choices=status_choices, default=2)

在数据库生成表 

自己在数据模拟创建一些数据:

靓号列表


 

pretty_list.html

{% extends 'layout.html' %}{% block content %}<div class="container"><div style="margin-bottom: 10px" class="clearfix"><a class="btn btn-success" href="/pretty/add/"><span class="glyphicon glyphicon-plus-sign" aria-hidden="true"></span>新建靓号</a><div style="float: right;width: 300px;"><form method="get"><div class="input-group"><input type="text" name="q" class="form-control" placeholder="Search for..."value="{{ search_data }}"><span class="input-group-btn"><button class="btn btn-default" type="submit"><span class="glyphicon glyphicon-search" aria-hidden="true"></span></button></span></div></form></div></div><div class="panel panel-default"><!-- Default panel contents --><div class="panel-heading"><span class="glyphicon glyphicon-th-list" aria-hidden="true"></span>靓号列表</div><!-- Table --><table class="table table-bordered"><thead><tr><th>ID</th><th>号码</th><th>价格</th><th>级别</th><th>状态</th><th>操作</th></tr></thead><tbody>{% for obj in queryset  %}<tr><th>{{ obj.id }}</th><td>{{ obj.mobile }}</td><td>{{ obj.price}}</td><td>{{ obj.get_level_display }}</td><td>{{ obj.get_status_display }}</td><td><a class="btn btn-primary btn-xs" href="/pretty/{{ obj.id }}/edit/">编辑</a><a class="btn btn-danger btn-xs" href="/pretty/{{ obj.id }}/delete/">删除</a></td></tr>{% endfor %}</tbody></table></div><div class="clearfix"><ul class="pagination">{{ page_string }}</ul></div></div>
{% endblock %}

新建靓号

 

 pretty_add.html

{% extends 'layout.html' %}{% block content %}<div class="container"><div class="panel panel-default" ><div class="panel-heading"><h3 class="panel-title">新建靓号</h3></div><div class="panel-body">
{#          不加action,表示提交到当前地址#}
{#          novalidate不让浏览器校验#}<form method="POST" novalidate>{% csrf_token %}{% for field in form %}<div class="form-group"><label>{{ field.label }}</label>{{ field }}
{#                       错误信息,是一个列表[错误1,错误2]#}<span style="color: red">{{ field.errors.0 }}</span></div>{% endfor %}<button type="submit" class="btn btn-primary" >提交</button></form></div></div></div>
{% endblock %}

对用户提交进行校验的两种方式(字段+正则和钩子方法)

编辑靓号

 pretty_edit.html

{% extends 'layout.html' %}{% block content %}<div class="container"><div class="panel panel-default" ><div class="panel-heading"><h3 class="panel-title">新建用户</h3></div><div class="panel-body">
{#          不加action,表示提交到当前地址#}
{#          novalidate不让浏览器校验#}<form method="POST" novalidate>{% csrf_token %}{% for field in form %}<div class="form-group"><label>{{ field.label }}</label>{{ field }}
{#                       错误信息,是一个列表[错误1,错误2]#}<span style="color: red">{{ field.errors.0 }}</span></div>{% endfor %}<button type="submit" class="btn btn-primary" >提交</button></form></div></div></div>
{% endblock %}

 

删除靓号 

搜索靓号

```python
models.PrettyNum.objects.filter(id=12)       # 等于12
models.PrettyNum.objects.filter(id__gt=12)   # 大于12
models.PrettyNum.objects.filter(id__gte=12)  # 大于等于12
models.PrettyNum.objects.filter(id__lt=12)   # 小于12
models.PrettyNum.objects.filter(id__lte=12)  # 小于等于12data_dict = {"id__lte":12}
models.PrettyNum.objects.filter(**data_dict)
``````python
models.PrettyNum.objects.filter(mobile="999")               # 等于
models.PrettyNum.objects.filter(mobile__startswith="1999")  # 筛选出以1999开头
models.PrettyNum.objects.filter(mobile__endswith="999")     # 筛选出以999结尾
models.PrettyNum.objects.filter(mobile__contains="999")     # 筛选出包含999data_dict = {"mobile__contains":"999"}
models.PrettyNum.objects.filter(**data_dict)
```

 如果输入了关键字,就往字典中写入一个词,根据关键字去搜索。如果value没有值相当于data_dict相当是一个空字典,就返回所有的

 

接下来要解决的是:url上边这个条件应该如何构造?不应该有我们手动输,应该页面有个框,通过点击提交实现,如下图所示:

最终实现:

分页

但是考虑到页面不止有5个,得根据数据库有多少数据来算,所以页码如图所示放是有问题的。所以可以把页面放在后台生成,然后传到前端页面。

 

分页组件的封装 

优化——时间选择组件

把组件直接复制到相应位置

 在user_add页面使用 

在母版中预留自定义css和js的位置

实现效果

在user_model_form_add中使用 

优化——BootStrap样式父类 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/311041.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Dirichlet Process (徐亦达老师)狄利克雷过程

混合高斯模型的例子 混合高斯模型 混合高斯模型&#xff08;Mixture of Gaussians&#xff0c;简称GMM&#xff09;是一种概率模型&#xff0c;用于对复杂的数据分布进行建模。它是由多个高斯分布组合而成的混合模型&#xff0c;每个高斯分布&#xff08;称为组件&#xff09;…

安全加固指南:如何更改 SSH 服务器的默认端口号

在 Linux 系统中修改 SSH 服务的默认端口号是一项重要的安全措施&#xff0c;它可以帮助增强系统的安全性。这个过程相对简单&#xff0c;但必须由具有管理员权限的用户来执行。下面&#xff0c;我将向大家介绍如何安全地更改 SSH 端口的具体步骤。 1 备份 SSH 配置文件 在修改…

nodejs+vue网上书城图书销售商城系统io69w

功能介绍 该系统将采用B/S结构模式&#xff0c;使用Vue和ElementUI框架搭建前端页面&#xff0c;后端使用Nodejs来搭建服务器&#xff0c;并使用MySQL&#xff0c;通过axios完成前后端的交互 系统的主要功能包括首页、个人中心、用户管理、图书类型管理、图书分类管理、图书信…

IntelliJ IDEA [警告] pom的依赖中出现警告Provides transitive vulnerable dependency

文章目录 1. 现象2. 为什么出现警告3. 如何对待呢4. 解决5. 解决的好处总结 1. 现象 在我们的工程 pom.xml 中的依赖中&#xff0c;所依赖的 spring-boot-starter-web 出现了警告。 依赖内容 <dependency><groupId>org.springframework.boot</groupId><…

MySQL高级SQL语句补充

目录 1.空值&#xff08;NULL&#xff09;和 无值&#xff08; &#xff09;的区别 2.正则表达式 3.存储过程 存储过程的优点 创建存储过程 调用存储过程 查看存储过程 存储过程的参数 IN 输入参数 OUT 输出参数 INOUT 输入输出参数 删除存储过程 存储过程的控制语…

最大花费金额 - 华为OD统一考试

OD统一考试 题解&#xff1a; Java / Python / C 题目描述 双十一众多商品进行打折销售&#xff0c;小明想购买自己心仪的一些物品&#xff0c;但由于受购买资金限制&#xff0c;所以他决定从众多心仪商品中购买三件&#xff0c;而且想尽可能的花完资金现在请你设计一个程序帮…

(2023,提示扩展,图像反演,文本到文本生成)自适应文本到图像生成的提示扩展

Prompt Expansion for Adaptive Text-to-Image Generation 公众&#xff1a;EDPJ&#xff08;添加 VX&#xff1a;CV_EDPJ 或直接进 Q 交流群&#xff1a;922230617 获取资料&#xff09; 目录 0. 摘要 3. 提示扩展数据集 3.1 图像审美数据集 3.2 图像到文本反演 3.3 查…

【数据结构与算法】字符串匹配(头歌习题)【合集】

目录 第1关&#xff1a;实现朴素的字符串匹配任务描述相关知识编程要求评测说明完整代码 第2关&#xff1a;实现KMP字符串匹配任务描述相关知识编程要求评测说明完整代码 第3关&#xff1a;【模板】KMP算法任务描述相关知识C STL容器string1、string的定义2、string中内容的访问…

使用YOLOv8和Grad-CAM技术生成图像热图

目录 yolov8导航 YOLOv8&#xff08;附带各种任务详细说明链接&#xff09; 概述 环境准备 代码解读 导入库 定义letterbox函数 调整尺寸和比例 计算填充 应用填充 yolov8_heatmap类定义和初始化 后处理函数 绘制检测结果 类的调用函数 热图生成细节 参数解释 we…

C++初阶——基础知识(函数重载与引用)

目录 1.命名冲突 2.命名空间 3.缺省参数 4.函数重载 1.函数重载的特点包括&#xff1a; 2.函数重载的好处包括&#xff1a; 3.引用 引用的特点包括 引用的主要用途包括 引用和指针 引用 指针 类域 命名空间域 局部域 全局域 第一个关键字 命名冲突 同一个项目之间冲…

sklearn 中matplotlib编制图表

代码 # 导入pandas库&#xff0c;并为其设置别名pd import pandas as pd import matplotlib.pyplot as plt# 使用pandas的read_csv函数读取名为iris.csv的文件&#xff0c;将数据存储在iris_data变量中 iris_data pd.read_csv(data/iris.txt,sep\t)# 使用groupby方法按照&quo…

期权二叉树估值与图计算

传统期权二叉树的算法都是基于数组的&#xff0c;对于没有编程基础的人来说非常不直观。二叉树是一种特殊的图&#xff0c;可以用python networkx这个图算法库实现&#xff0c;这个库不仅包含常用的图算法&#xff0c;还包含简单的绘图功能&#xff0c;非常适合研究分析使用。 …