当前位置: 首页 > news >正文

Django项目之订单管理part6(message组件和组合搜索组件)

一.前言

我们前面讲的差不多了,接着上节课讲,今天要来做一个撤单要求,我们可以用ajax请求,但是我这里介绍最后一个知识点,message组件,但是我会把两种方式都讲出来的,讲完这个就开始讲我们最重要的worker

二.message组件

2.1 message基础配置

打开app 

打开中间件

打开模板

第四个位置,自定义

# MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage'
# MESSAGE_STORAGE = 'django.contrib.messages.storage.cookie.CookieStorage'
MESSAGE_STORAGE = 'django.contrib.messages.storage.session.SessionStorage' 

2.2 设置值

from django.contrib import messages
messages.add_message(reqeust, messages.SUCCESS, "删除成功1")
messages.add_message(reqeust, messages.ERROR, "操作失败") 

 2.3 读取值

py中读取 

from django.contrib.messages.api import get_messages
messages = get_messages(request)
for msg in messages:
    print(msg)

html中读取

<ul>
    {% for message in messages %}
        <li>{{ message.tags }} {{ message }}</li>
    {% endfor %}
</ul>

读取值以后就默认删除了,有点像队列  

三.客户撤单

3.1 撤单的页面展示

我们借助bootstrap,成功是成功的弹出框,失败是失败的弹出框,这时候就要用到里面的level_tag,正好和bootstarap对应上了

末尾再加个定时器,这样就刚好展示三秒

这里加上设置的这个配置是因为这个里面默认没有danger,但是bootstrap里面是有danger的,所以我们得自定义属性,让他能够展示danger的错误页面,所以我们这样设置,因为没和大家说源码,所以大家肯定是不太懂得,但是记住就好。

 3.2 撤单逻辑处理

这个和前面做的都一样,也没啥区别

四.我的交易记录 

我们前面做了一个我的交易记录,这里我们还要做一个客户得交易记录,这里还是实现一个新的功能,就是组合搜索。

这里我直接用写好的组件,当然这个是机构的组件,我这里讲一下用法

4.1 组合搜索组件得用法

组件源码

#!/usr/bin/env python
# -*- coding:utf-8 -*-
from django.db.models import ForeignKey, ManyToManyFieldclass SearchGroupRow(object):def __init__(self, title, queryset_or_tuple, option, query_dict):""":param title: 组合搜索的列名称:param queryset_or_tuple: 组合搜索关联获取到的数据:param option: 配置:param query_dict: request.GET"""self.title = titleself.queryset_or_tuple = queryset_or_tupleself.option = optionself.query_dict = query_dictdef __iter__(self):yield '<div class="whole">'yield self.titleyield '</div>'yield '<div class="others">'total_query_dict = self.query_dict.copy()total_query_dict._mutable = Trueorigin_value_list = self.query_dict.getlist(self.option.field)if not origin_value_list:yield "<a class='active' href='?%s'>全部</a>" % total_query_dict.urlencode()else:total_query_dict.pop(self.option.field)yield "<a href='?%s'>全部</a>" % total_query_dict.urlencode()for item in self.queryset_or_tuple:text = self.option.get_text(item)value = str(self.option.get_value(item))query_dict = self.query_dict.copy()query_dict._mutable = Trueif not self.option.is_multi:query_dict[self.option.field] = valueif value in origin_value_list:query_dict.pop(self.option.field)yield "<a class='active' href='?%s'>%s</a>" % (query_dict.urlencode(), text)else:yield "<a href='?%s'>%s</a>" % (query_dict.urlencode(), text)else:# {'gender':['1','2']}multi_value_list = query_dict.getlist(self.option.field)if value in multi_value_list:multi_value_list.remove(value)query_dict.setlist(self.option.field, multi_value_list)yield "<a class='active' href='?%s'>%s</a>" % (query_dict.urlencode(), text)else:multi_value_list.append(value)query_dict.setlist(self.option.field, multi_value_list)yield "<a href='?%s'>%s</a>" % (query_dict.urlencode(), text)yield '</div>'class Option(object):def __init__(self, field, is_condition=True, is_multi=False, db_condition=None, text_func=None, value_func=None):""":param field: 组合搜索关联的字段:param is_multi: 是否支持多选:param db_condition: 数据库关联查询时的条件:param text_func: 此函数用于显示组合搜索按钮页面文本:param value_func: 此函数用于显示组合搜索按钮值"""self.field = fieldself.is_condition = is_conditionself.is_multi = is_multiif not db_condition:db_condition = {}self.db_condition = db_conditionself.text_func = text_funcself.value_func = value_funcself.is_choice = Falsedef get_db_condition(self, request, *args, **kwargs):return self.db_conditiondef get_queryset_or_tuple(self, model_class, request, *args, **kwargs):"""根据字段去获取数据库关联的数据:return:"""# 根据gender或depart字符串,去自己对应的Model类中找到 字段对象field_object = model_class._meta.get_field(self.field)title = field_object.verbose_name# 获取关联数据if isinstance(field_object, ForeignKey) or isinstance(field_object, ManyToManyField):# FK和M2M,应该去获取其关联表中的数据: QuerySetdb_condition = self.get_db_condition(request, *args, **kwargs)return SearchGroupRow(title,field_object.remote_field.model.objects.filter(**db_condition),self,request.GET)else:# 获取choice中的数据:元组self.is_choice = Truereturn SearchGroupRow(title, field_object.choices, self, request.GET)def get_text(self, field_object):"""获取文本函数:param field_object::return:"""if self.text_func:return self.text_func(field_object)if self.is_choice:return field_object[1]return str(field_object)def get_value(self, field_object):if self.value_func:return self.value_func(field_object)if self.is_choice:return field_object[0]return field_object.pkdef get_search_condition(self, request):if not self.is_condition:return Noneif self.is_multi:values_list = request.GET.getlist(self.field)  # tags=[1,2]if not values_list:return Nonereturn '%s__in' % self.field, values_listelse:value = request.GET.get(self.field)  # tags=[1,2]if not value:return Nonereturn self.field, valueclass SearchGroup(object):def __init__(self, request, model_class, *options):self.request = requestself.model_class = model_classself.options = optionsdef get_row_list(self):row_list = []for option_object in self.options:row = option_object.get_queryset_or_tuple(self.model_class, self.request)row_list.append(row)return row_list@propertydef get_condition(self):"""获取组合搜索的条件:param request::return:"""condition = {}# ?depart=1&gender=2&page=123&q=999for option in self.options:key_and_value = option.get_search_condition(self.request)if not key_and_value:continuekey, value = key_and_valuecondition[key] = valuereturn condition

  # 第一步:配置和传参
    search_group = NbSearchGroup(
        request,
        models.TransactionRecord,
        Option('charge_type'),  # choice 或者forikey字段

        #也可也加上 Option('level',db_condition={'active':1})搜索条件

        #  is_multi=True 允许多选


    )

    # 第二步:获取条件 .filter(**search_group.get_condition)
    queryset = models.TransactionRecord.objects.filter(**search_group.get_condition)
    pager = Pagination(request, queryset)

    context = {
        "pager": pager,
        "keyword": keyword,
        "search_group": search_group  # 第三步:传入前端页面
    }

.search-group {padding: 5px 10px;
}.search-group .row .whole {width: 60px;float: left;display: inline-block;padding: 5px 0 5px 8px;margin: 3px;font-weight: bold;text-align: right;}.search-group .row .others {padding-left: 80px;
}.search-group .row a {display: inline-block;padding: 5px 8px;margin: 3px;border: 1px solid #d4d4d4;}.search-group .row a {display: inline-block;padding: 5px 8px;margin: 3px;border: 1px solid #d4d4d4;
}.search-group a.active {color: #fff;background-color: #337ab7;border-color: #2e6da4;
}

母版

<link rel="stylesheet" href="{% static 'css/search-group.css' %}"> 

{% if search_group %}<div class="panel panel-default"><div class="panel-heading"><i class="fa fa-filter" aria-hidden="true"></i> 快速筛选</div><div class="panel-body"><div class="search-group">{% for row in search_group.get_row_list %}<div class="row">{% for obj in row %}{{ obj|safe }}{% endfor %}</div>{% endfor %}</div></div></div>
{% endif %}

html

{% block content %}
    {% include 'include/search_group.html' %}
{% endblock %} 

4.2 交易记录逻辑 

 

这样就ok了

五.所有交易记录

这个代码和前面基本一样,也没啥知识点了,所以我就直接放在这里了

这样就ok了

六.总结

我们这样就把所有的展示功能以及数据库的全部功能实现了,现在就只差worker和上传服务器,这里下一节再讲,把这里全部都和大家梳理一下。

  • 权限和菜单

    • 动态菜单,不同用户角色【配置文件】

      - 配置文件,写配置用户级别配置 + 默认配置
      - 构造属于自己的结构:权限、菜单字典。
      - 数据库获取用户角色
    • 默认选中和展开

      - inclusion_tag
    • 权限校验

      - 中间件
      - request.nb_user 赋值
    • 控制按钮是否显示

      - filter,可以模板语言中的if else的条件
  • 基于Form和ModelForm实现增删改查

  • 构建的了BootStrapForm类实现BootStrap样式 + 免除BootStrap样式

  • 删除/撤单

    • 直接超链接删除,跳转

    • 对话框 + ajax删除(推荐)

    • 直接超链接删除,跳转 + message => 成功和失败的提醒。(推荐)

  • 添加和编辑

    • 跳转到添加和编辑页面,成功后跳转回来。

    • 对话框 + ajax

  • 原条件保留

    • 删除

    • 编辑

  • 分页

  • 关键字搜索

  • 组合搜索

七.补充 

下一期将和大家开始讲的内容有点多,希望大家的关注加收藏,不懂得看我的名字和签名,一起交流学习

相关文章:

Django项目之订单管理part6(message组件和组合搜索组件)

一.前言 我们前面讲的差不多了&#xff0c;接着上节课讲&#xff0c;今天要来做一个撤单要求&#xff0c;我们可以用ajax请求&#xff0c;但是我这里介绍最后一个知识点&#xff0c;message组件&#xff0c;但是我会把两种方式都讲出来的&#xff0c;讲完这个就开始讲我们最重…...

[MySql] 多表关系, 多表查询

一. 多表关系 1.1 一对多 例如: 员工 - 部门表 (一个部门可以有多个员工) 并且在多的一方增加一个字段关联一的一方的主键. 外键约束: 物理外键 (使用 foreign key 定义外键关联另一张表的主键) 缺点: 影响增删改效率; 仅用于单节点, 不适用与集群; 易引发死锁, 性能低; …...

Open GL ES ->GLSurfaceView在正交投影下的图片旋转、缩放、位移

XML文件 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:o…...

一文详解QT环境搭建:Windows使用CLion配置QT开发环境

在当今的软件开发领域&#xff0c;跨平台应用的需求日益增长&#xff0c;Qt作为一款流行的C图形用户界面库&#xff0c;因其强大的功能和易用性而备受开发者青睐。与此同时&#xff0c;CLion作为一款专为C/C打造的强大IDE&#xff0c;提供了丰富的特性和高效的编码体验。本文将…...

MSTP和链路聚合

MSTP 802.1S --- MSTP --- 多生成树协议 --- 就是在RSTP基础上&#xff0c;再针对链路利用率低问题进行优化&#xff0c;可以和RSTP以及STP向下兼容。 实例 --- Instance --- 可以理解为一个V LAN或者多个VALN的集合。一个交换网络可以针对一个实例创建一棵树&#xff0c;起到…...

每天学一个 Linux 命令(8):ls

大家好,欢迎来到《每天掌握一个Linux命令》系列。在这个系列中,我们将逐步学习并熟练掌握Linux命令,今天,我们要学习的命令是ls。 01 什么是ls命令 在Linux系统中,ls命令是“list”的缩写,其英文全称为“list directory contents”,即“列出目录内容”。该命令非常实用…...

交换机、路由器、VLAN、单臂路由、三层交换、STP

华为模拟安装 1.依次安装wincap 2.wireshark 3.virtual box 4.ensp 一、设置 1.virtual box设置 2.计算机防火墙允许以上程序 3.eNSP设置 路由器&#xff1a;AR2240 交换机&#xff1a;S5700、CE12800 防火墙USG6000V 交换机 一、交换机工作原理 1、回顾 二层交换机…...

算法 | 2024最新算法:斑翠鸟优化算法原理,公式,应用,算法改进研究综述,matlab代码

基于斑翠鸟优化算法的原理、应用及改进研究综述 一、算法原理 斑翠鸟优化算法(Pied Kingfisher Optimizer, PKO)是2024年由Bouaouda等人提出的一种新型仿生智能优化算法,其灵感来源于斑翠鸟的捕食行为与共生关系。算法通过模拟斑翠鸟的栖息悬停、潜水捕鱼及与其他生物的共生…...

六十天Linux从0到项目搭建(第二十二天)(pipe、管道四种场景)

1 关于 pipe 系统调用的解析 int pipe(int pipefd[2]) 是 Unix/Linux 系统中用于创建匿名管道的系统调用。以下是关于管道特点的详细解释&#xff1a; 输出型参数 pipefd[2] 是输出型参数&#xff0c;调用成功后&#xff1a; pipefd[0] 存放管道的读取端文件描述符 pipefd[1…...

数据安全与网络安全——问答复习

目录 1、请简要分析勒索软件攻击的原理,并给出技术防护⽅案。 勒索软件攻击原理: 技术防护⽅案 2、举例数据安全问题 数据泄露 数据篡改 数据丢失 3、如何应对数据安全问题 技术层⾯ 管理层⾯ 4、软件漏洞 产⽣原因&#xff1a; 缓冲区溢出漏洞&#xff1a; 注⼊漏…...

ESP-01模块连接手机热点问题及解决方法

在使用ESP-01模块连接手机热点时&#xff0c;可能会遇到一些问题。本文将详细介绍如何解决这些问题&#xff0c;并分享最终通过将WiFi切换到2.4GHz成功解决问题的经验。 一、问题描述 在尝试使用ESP-01模块连接手机热点时&#xff0c;遇到了连接失败的问题。以下是操作过程中…...

go中锁的入门到进阶使用

Go 并发编程&#xff1a;从入门到精通的锁机制 引言&#xff1a;为什么需要锁&#xff1f; Go 语言以其天生支持并发的特性深受开发者喜爱&#xff0c;但并发带来的问题也不容小觑&#xff0c;比如数据竞争、并发安全等。如果多个 Goroutine 访问同一个变量&#xff0c;没有做…...

JS判断对象是否为空的方法

在 JavaScript 中&#xff0c;判断一个对象是否为空对象&#xff08;即没有自身可枚举属性&#xff09;&#xff0c;可以通过以下方法实现&#xff1a; 方法 1&#xff1a;使用 Object.keys() javascript function isEmptyObject(obj) {// 确保是普通对象&#xff08;排除 n…...

idea导入tomcat的jar

概述 对于老项目&#xff0c;未使用 Maven/Gradle 管理依赖的&#xff0c;在需要编译 Servlet/JSP 代码时&#xff0c;需要手动添加 Tomcat JAR 依赖&#xff08;如 servlet-api.jar&#xff09;方能进行编绎。 步骤&#xff1a; 1、找到 Tomcat 的 JAR 文件 进入 Tomcat 安…...

Linux 下安装和使用 Jupyter Notebook

Jupyter Notebook / Lab 是 Python 开发和数据分析中不可或缺的工具。为了避免环境污染&#xff0c;推荐使用虚拟环境方式安装并启动它。本教程将教你如何&#xff1a; 安装 Python、pip、venv使用虚拟环境安装 Jupyter汉化安装实用插件设置登录密码启动并远程访问编写一个一键…...

【Ubuntu常用命令】

1.将本地服务器文件或文件夹传输到远程服务器 文件 scp /data/a.txt administrator10.60.51.20:/home/administrator/ 文件夹 scp -r /data/ administrator10.60.51.20:/home/administrator/ 2.从远程服务器传输文件到本地服务器 scp administrator10.60.51.20:/data/a.txt /h…...

UR机械臂sim2real推荐包

推荐一个和ur机械臂配套的interface&#xff1a; ur_rtde Universal Robots RTDE C Interface — ur_rtde 1.6.0 documentation 也欢迎大家提供新想法和bug...

HTTP协议深度解析详解

HTTP协议深度解析详解 一、HTTP协议基础架构 1.1 请求响应模型 #mermaid-svg-pAGwQipduFJRm11I {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-pAGwQipduFJRm11I .error-icon{fill:#552222;}#mermaid-svg-pAGwQipd…...

算法学习第十七天:LRU缓存与布隆过滤器

LRU缓存与布隆过滤器 目录 LRU缓存 基本概念实现原理C代码实现 布隆过滤器 基本概念实现原理C代码实现 LRU缓存 基本概念 LRU&#xff08;Least Recently Used&#xff09;&#xff1a;最近最少使用策略&#xff0c;当缓存空间不足时&#xff0c;淘汰最久未被访问的数据。…...

html中img标签直接使用border-radius时会图片进行了遮挡

前言 该问题是我写完项目之后&#xff0c;UI走查发现的问题&#xff0c;虽然我也发现了问题&#xff0c;但是改起来&#xff0c;不好改&#xff0c;就耽搁了。后面UI还是要求要改。一直找不到解决方案&#xff0c;歪打正着通过MDN官网偶然看到的clip-path属性。 需求 一个图…...

【Keepalived】Keepalived-2.3.3明确结束对CentOS 7的支持

2025年3月30日&#xff0c;官方发布了Keepalived的最新版&#xff0c;版本号&#xff1a;2.3.3 而2024年11月3日发布的2.3.2版本&#xff0c;在CentOS 7.9上编译的时候&#xff0c;就出现了报错&#xff0c;但是在Alma Linux 8.10上&#xff0c;则可以成功编译安装&#xff0c…...

Docker学习--容器生命周期管理相关命令--docker pause/unpause 命令

docker pause 命令的作用&#xff1a; 用于暂停一个或多个容器中的所有进程。 语法&#xff1a; docker pause CONTAINER [CONTAINER…]&#xff08;要操作的容器的名称&#xff0c;可以同时操作多个&#xff09;。 实例&#xff1a; ①暂停一个容器及其所有进程&#xff1a;…...

【Zabbix技术系列文章】第④篇——Zabbix 数据可视化

在当今数字化运维时代&#xff0c;面对海量的监控数据&#xff0c;如何从中快速获取有价值的信息至关重要。Zabbix 的数据可视化功能为我们提供了直观、高效的解决方案&#xff0c;它能将复杂的监控数据转化为清晰易懂的图表和仪表盘&#xff0c;助力运维人员迅速发现问题、分析…...

R CSV 文件处理指南

R CSV 文件处理指南 引言 CSV&#xff08;逗号分隔值&#xff09;文件是一种常见的文件格式&#xff0c;它以纯文本形式存储表格数据。在R语言中&#xff0c;CSV文件处理是非常基础且重要的技能。本文将详细介绍如何在R中读取、处理和导出CSV文件&#xff0c;并探讨一些高级技…...

在Git仓库的Readme上增加目录页

一般在编写Readme时想要增加像文章那样的目录&#xff0c;方便快速跳转&#xff0c;但是Markdown语法并没有提供这样的方法&#xff0c;但是可以通过超链接结合锚点的方式来实现&#xff0c;如下图是我之前一个项目里写的Readme&#xff1a; 例如有下面几个Readme内容&#xff…...

[特殊字符]《多商户家政系统技术解析:SpringBoot+MyBatisPlus+UniApp高效实战指南》

&#x1f6e0;️ 引言&#xff1a;多商户家政系统的技术挑战与价值 在数字化时代&#xff0c;家政行业逐渐向线上迁移&#xff0c;从传统的线下预约转向平台化管理。多商户家政系统具备复杂的角色体系&#xff0c;包括&#xff1a; &#x1f6ce;️ 商户端&#xff1a;管理订单…...

请求Header(Request Headers)详解

请求Header&#xff08;Request Headers&#xff09;详解 HTTP请求Header是HTTP请求消息的重要组成部分&#xff0c;用于在客户端和服务器之间传递附加信息。这些信息帮助服务器理解客户端的环境、偏好和请求的具体内容&#xff0c;从而能够返回更合适的响应。以下是对请求Hea…...

深度求索:开源革命下的AI普惠之路

引言&#xff1a;AI领域的破局者 2025年&#xff0c;全球AI领域因一家中国公司的崛起而震动。杭州深度求索&#xff08;DeepSeek&#xff09;推出的V3大模型以6710亿参数、14.8万亿token训练数据量&#xff0c;在数学竞赛、代码生成等专业领域超越多数国际竞品&#xff0c;其每…...

XSS 攻击(详细)

目录 引言 一、XSS 攻击简介 二、XSS 攻击类型 1.反射型 XSS 2.存储型 XSS 3.基于 DOM 的 XSS 4.Self - XSS 三、XSS 攻击技巧 1.基本变形 2.事件处理程序 3.JS 伪协议 4.编码绕过 5.绕过长度限制 6.使用标签 四、XSS 攻击工具与平台 1.XSS 攻击平台 2.BEEF 五…...

使用Redis实现轻量级消息队列

使用消息中间件如RabbitMQ或kafka虽然好&#xff0c;但也给服务器带来很大的内存开销&#xff0c;当系统的业务量&#xff0c;并发量不高时&#xff0c;考虑到服务器和维护成本&#xff0c;可考虑使用Redis实现一个轻量级的消息队列&#xff0c;实现事件监听的效果。下面介绍下…...

13届省赛python A组:10.数的拆分

题目1 数的拆分 给定 T 个正整数 ai&#xff0c;分别问每个 ai 能否表示为 x 1 y 1 ⋅ x 2 y 2 x1^{y1}⋅x2^{y2} x1y1⋅x2y2 的形式&#xff0c;其中 x1,x2 为正整数&#xff0c;y1,y2 为大于等于 2 的正整数。 输入格式 输入第一行包含一个整数 T 表示询问次数。 接下来…...

【Android Studio】下载安装过程(详细)

目录 一、前期准备 JDK下载安装 二、下载安装 下载 安装 启动 一、前期准备 JDK下载安装 详细的安装过程请移步我的另一篇博客jdk17详细安装步骤_jdk17安装教程详细-CSDN博客 cmd打开命令行&#xff0c;输入java -version验证&#xff0c;可以看到此处我安装的是java23。…...

【RAGFlow】ubuntu22部署ragflow(v0.17.2)

按照官方手册部署&#xff1a; https://ragflow.io/docs/v0.17.2/ 部署环境&#xff1a; CPU: 4核memory&#xff1a; 16gGPU: T4(vGPU)Disk: 20g 1. 配置国内docker-ce源 https://mirrors.tuna.tsinghua.edu.cn/help/docker-ce/ 用清华源&#xff0c;要不然下载速度感人 …...

Easysearch 如何短暂维护 Data 节点

之前介绍过如何移除 Data 节点&#xff0c;那么如果只是短暂停止一个 Data 节点进行维护&#xff0c;之后再次加入集群&#xff0c;是否也需要按照移除节点的步骤进行操作呢&#xff1f;我们先梳理下核心原理。 核心原理 我们先看看节点离开集群之后集群是怎样处理的。当节点…...

【cocos creator 3.x】3Dui创建,模型遮挡ui效果

官方文档&#xff1a;https://docs.cocos.com/creator/3.8/manual/zh/ui-system/components/editor/ui-model.html 1、3Dui创建 创建label&#xff0c;默认会添加canvas根节点和2dCamera 将Camera删除&#xff0c;canvas上组建去除cc.Canvas&#xff0c;cc.widget&#xff0…...

UE5学习笔记 FPS游戏制作32 主菜单,暂停游戏,显示鼠标指针

文章目录 一主菜单搭建UI显示主菜单时&#xff0c;暂停游戏&#xff0c;显示鼠标绑定按钮 二 打开主菜单 一主菜单 搭建UI 添加一个MainUi的控件 添加一个返回游戏的按钮和一个退出游戏的按钮 修改一下样式&#xff0c;放中间 显示主菜单时&#xff0c;暂停游戏&#xff0…...

有哪些开源的视频生成模型

1. 阿里巴巴通义万相2.1&#xff08;WanX 2.1&#xff09; 技术架构&#xff1a;基于Diffusion Transformer&#xff08;DiT&#xff09;架构&#xff0c;结合自研的高效变分自编码器&#xff08;VAE&#xff09;和Flow Matching训练方案&#xff0c;支持时空上下文建模。参数…...

基于Spring Boot的家庭理财系统app的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…...

SQLAlchemy系列教程:事件驱动的数据库交互

在现代Web应用开发中&#xff0c;数据库交互往往需要超越简单的CRUD操作。当用户注册成功后自动发送欢迎邮件&#xff1f;在订单创建时同步库存数据&#xff1f;这些场景都需要监听数据库状态变化并触发相应逻辑。SQLAlchemy的事件系统为此提供了优雅的解决方案。 本文将深入解…...

linux基本命令(2)--进程命令PS

其实吧, 在linux命令下 输入man ps也可以&#xff0c;一行行拖下去也是看到解析的。退出不看的时候记得按q哦 基本介绍 国际惯例介绍下这个命令的用途。 在Linux下ps命令是用于查看系统上运行的进程的最基本的命令之一。它提供了当前进程的同时&#xff0c;如用户ID&#xf…...

android adb 查看设备传感器

Android ADB 查看设备传感器的使用技巧 在Android开发中&#xff0c;了解设备的传感器是非常重要的一步。不论是开发健康应用、游戏&#xff0c;还是任何需要感知用户环境的应用&#xff0c;传感器的使用都离不开对其数据的获取。Android Debug Bridge&#xff08;ADB&#xf…...

Verilog HDL 100道面试题及参考答案

目录 Verilog HDL 的四种基本逻辑值是什么? 关键字 reg 和 wire 的主要区别是什么? 解释阻塞赋值(=)与非阻塞赋值(<=)的区别,并举例说明。 如何声明一个双向端口(inout)? 位拼接操作符是什么?举例说明其用法。 拼接信号和常量 拼接常量和信号 重复拼接 以…...

Java基础-26-多态-认识多态

在Java编程中&#xff0c;多态&#xff08;Polymorphism&#xff09; 是面向对象编程的核心概念之一。通过多态&#xff0c;我们可以编写更加灵活、可扩展的代码。本文将详细介绍什么是多态、如何实现多态&#xff0c;并通过具体的例子来帮助你更好地理解这一重要概念。 一、什…...

安当CAS密码应用系统:构建企业级固件签名体系的解决方案

在工业互联网与智能设备爆发式增长的今天&#xff0c;固件安全已成为设备安全的"最后一道防线"。据IDC统计&#xff0c;2025年全球68%的固件攻击将利用密钥管理漏洞发起。传统固件签名方案依赖企业自购硬件加密机&#xff08;HSM&#xff09;&#xff0c;不仅面临高额…...

文法 2025/3/3

文法的定义 一个文法G是一个四元组&#xff1a;G(,,S,P) &#xff1a;一个非空有限的终极符号集合。它的每个元素称为终极符号或终极符&#xff0c;一般用小写字母表示。终极符号是一个语言不可再分的基本符号。 &#xff1a;一个非空有限的非终极符号集合。它的每个元素称为…...

论文阅读:Dual Anchor Graph Fuzzy Clustering for Multiview Data

论文地址:Dual Anchor Graph Fuzzy Clustering for Multiview Data | IEEE Journals & Magazine | IEEE Xplore 代码地址&#xff1a;https://github.com/BBKing49/DAG_FC 摘要 多视角锚图聚类近年来成为一个重要的研究领域&#xff0c;催生了多个高效的方法。然而&#…...

【分享】内外网文件摆渡系统:让数据传输更安全更可靠

【分享】Ftrans内外网文件摆渡系统&#xff1a;让数据传输更安全更可靠&#xff01; 随着大数据时代的到来&#xff0c;数据的重要性日渐得到重视&#xff0c;数据作为数字经济时代下的基础性资源和战略性资源&#xff0c;是决定国家经济发展水平和竞争力的核心驱动力。以行业…...

Spring Boot 中的 Aware 接口以及 ApplicationContextAware 的详细说明、使用示例及注意事项

以下是关于 Spring Boot 中的 Aware 接口以及 ApplicationContextAware 的详细说明、使用示例及注意事项&#xff1a; 一、Aware 接口简介 Spring 框架提供了一系列 Aware 接口&#xff0c;用于让 Bean 在初始化时感知并获取 Spring 容器中的特定组件。这些接口通过回调方法&a…...

nginx的自定义日志

正常nginx的报错都会在 想要把日志独立出来需要用到俩个参数 然后创建目录 mkdir /var/log/timingxu.org 最后实验一下 结果实验成功...

【蓝桥杯速成】| 17.完全背包(一维easy版)

题目一&#xff1a;爬楼梯 问题描述 57. 爬楼梯&#xff08;第八期模拟笔试&#xff09; 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬至多m (1 < m < n)个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 注意&#xff1a;给定 n 是一个正整…...