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

django_创建菜单(实现整个项目的框架,调包)

文章目录

  • 前言
  • 代码仓库地址
  • 在线演示网址
  • 启动网站的时候出现错误
  • 渲染
  • 路径的一些说明
  • 文件结构
  • 网页显示一条错误
  • 路由顺序
  • js
  • 打包
  • 出现问题的代码
  • 函数没有起作用
  • 关于进度
  • 开发细节
  • 显示不了图片
  • 梳理一下函数调用的流程
  • 修改一些宽度参数
  • class
  • js 里面的一些细节
  • 让三个按钮可以点击
  • 设置按钮的样式
  • 在前端实现页面的切换
  • 结语

前言

为了赶进度,没有写什么记录文档,其实也快不了多少,反而不写记录文档,做的过程中遇到的一些问题,自己解决之后,以后回顾的时候容易忘记,所以记录其实算是一个非常好的习惯,进度重要,扎实也比较重要

代码仓库地址

代码仓库

欢迎大家多多 star

在线演示网址

网址

目前是这个网址,但是这个服务器是笔者租的服务器,三个月之后就会到期,到时候笔者可能需要把 docker 里面的文件打包传到新的服务器上面,或者是继续租现在免费体验的这个服务器,之后再更新

启动网站的时候出现错误

笔者输入这条命令,试图启动网站(昨天晚上其实就已经成功启动网站了,只是今天改了点儿东西就启动不了了)
python3 manage.py runserver 0.0.0.0:8000
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
昨天晚上算是实现了一些简单的网页展示,还有跳转的按钮,今天做的修改是把一些路由改了

URL 代表着是统一资源定位符(Uniform Resource Locator)。URL 无非就是一个给定的独特资源在 Web 上的地址。理论上说,每个有效的 URL 都指向一个唯一的资源。这个资源可以是一个 HTML 页面,一个 CSS 文档,一幅图像,等等。而在实际中,也有一些例外,最常见的情况就是一个 URL 指向了不存在的或是被移动过的资源。由于通过 URL 呈现的资源和 URL 本身由 Web 服务器处理,因此 web 服务器的拥有者需要认真地维护资源以及与它关联的 URL

SyntaxError: closing parenthesis ‘]’ does not match opening parenthesis ‘(’ on line 8

上面出现的这个问题是语法错误,应该是敲代码的时候敲错了

index文件少写了一个小括号,加上之后成功启动了网站
在这里插入图片描述
能够在终端看到这个访问记录
在这里插入图片描述

渲染

简单的解释,前端写好html模板,让后端直接填数据,这就是后端渲染。 前端渲染是,通过ajax请求接口返回的数据,将数据渲染出来。 后端只写接口,分工更明细

在软件开发中,"渲染"通常指的是将数据或者某种描述转换为用户界面的可视化输出的过程


按照笔者的理解就是把代码或者字符串输出为图片文字等,让没有学过计算机的用户能够简单直接的使用这个软件(或者说是系统)

该项目是前后端分离的项目,前端渲染的好处就是可以降低服务器的压力

路径的一些说明

from django.urls import path,include
from game.views.index import indexurlpatterns=[path("",index,name="index"),path("menu/",include("game.urls.menu.index")),path("playground/",include("game.urls.playground.index")),path("settings/",include("game.urls.settings.index"),
]

上面的代码是整个项目的 index 文件,中括号里第一行是返回项目网址的链接(因为什么都没加,是一个空值),我们查看现在的网站的源码,如下

(这个还不算是整个项目的 index 文件,这个是 urls 里面的 index 文件,按照笔者的理解,这些 index 文件主要作用是提供一些可以跳转的路径,因为逻辑的改变,可以跳转到不同的页面)
在这里插入图片描述
可以发现上面的代码和这个代码是一模一样的

{% load static %}
<head><link rel="stylesheet" href="https://cdn.acwing.com/static/jquery-ui-dist/jquery-ui.min.css"><script src="https://cdn.acwing.com/static/jquery/js/jquery-3.3.1.min.js"></script><link rel="stylesheet" href="% static 'css/game.css' %"><script src="{% static 'js/dist/game.js' %}"></script>
</head><body style="margin:0"><div id="ac_game_12345678"></div><script>$(document).ready(function("ac_game_12345678"){let ac_game=AcGame();});</script>
</body>

这份代码是 Multiple_front_ends/web.html ,表示的是多个前端文件夹下面的 web 前端文件

该项目的定位是一个后端,等未来有机会的话,希望能实现多个前端,比如说网页端,应用端,小程序端等

文件结构

在这里插入图片描述

网页显示一条错误

GET http://39.105.183.81:8000/%%20static%20'css/game.css'%20% net::ERR_EMPTY_RESPONSE
我找到这个文件,去对应的地方修改一下

修改了一下,发现是因为文件里面没有什么具体的内容,所以报错了,没有什么影响

到目前为止就把前期的一些准备工作做好了

后面发现不是因为文件是空的报错,而是因为一个语法格式写错了报错的,后面有写

路由顺序

首先访问 fight 里面的 fight 文件夹里面的 urls 文件,

"""fight URL ConfigurationThe `urlpatterns` list routes URLs to views. For more information please see:https://docs.djangoproject.com/en/3.2/topics/http/urls/
Examples:
Function views1. Add an import:  from my_app import views2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views1. Add an import:  from other_app.views import Home2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf1. Import the include() function: from django.urls import include, path2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path,includeurlpatterns = [path('',include('game.urls.index')),path('admin/', admin.site.urls),
]

跳转到 game.urls.index 文件

from django.urls import path,include
from game.views.index import indexurlpatterns=[path("",index,name="index"),path("menu/",include("game.urls.menu.index")),path("playground/",include("game.urls.playground.index")),path("settings/",include("game.urls.settings.index")),
]

然后跳转到 views 里面的 index 文件

from django.shortcuts import renderdef index(request):return render(request,"Multiple_front_ends/web.html")

然后跳转到 Multiple_front_ends/web.html 文件,这个文件里面的内容就是目前网页显示的源代码

js

这个文件夹下面有一些文件夹和文件
在这里插入图片描述

打包

每一次修改 js 文件之后都需要打包一下这个文件,也就是执行一次scripts/compress_game_js.sh 文件

#! /bin/bashJS_PATH=/home/acs/fight/game/static/js/
JS_PATH_DIST=${JS_PATH}dist/
JS_PATH_SRC=${JS_PATH}src/find . $JS_PATH_SRC -type f -name '*.js' | sort | xargs cat > ${JS_PATH_DIST}game.js

src 里面的所有 js 文件打包发送到 distgame.js 文件里面

出现问题的代码

<link rel="stylesheet" href="% static 'css/game.css' %">

这段代码貌似没啥问题

改成了这样就没有错误了
<link rel="stylesheet" href="{% static 'css/game.css' %}">

原来是没有加大括号

函数没有起作用

在这里插入图片描述

目前在 zbase.js文件里面的输出,没有正常在控制台显示

我们可以看到,这个 web.html 显示的是这个输出

{% load static %}
<head><link rel="stylesheet" href="https://cdn.acwing.com/static/jquery-ui-dist/jquery-ui.min.css"><script src="https://cdn.acwing.com/static/jquery/js/jquery-3.3.1.min.js"></script><link rel="stylesheet" href="% static 'css/game.css' %"><script src="{% static 'js/dist/game.js' %}"></script>
</head><body style="margin:0"><div id="ac_game_12345678"></div><script>$(document).ready(function(){let ac_game=new AcGame("ac_game_12345678");});console.log("hello world");</script>
</body>

是正常的,是笔者看教程的时候把这个漏掉了,应该是因为教程把这个代码里面的 hello world 删除了,然后在 zbase.js 文件里面进行修改
在这里插入图片描述

删除之后并没有显示我们想要看到的内容,我们把这个文件修改,打包刷新之后没有像教程一样,在控制台输出我们需要的内容

这是为什么呢

检查 game.js 文件,发现是这个情况
在这里插入图片描述
zbase.js文件里面的内容是一样的,只是没有显示在控制台

我们认为可能是调用这个函数的时候没有调用成功,可能是函数名字没有写对

对比了一下代码都是相同的,可能是因为空行的原因吗,感觉基本不可能因为空行调用不了函数,但还是试试
在这里插入图片描述
太离谱了呀,我把空行删除之后就能正常显示了,可能是因为这个控制台每次只能输出一行数据

关于进度

今天本来想学两个章节,但是现在这一个章节都没有学完,我今天不把这一个章节学完就不睡觉了,之后每天至少学一个章节,要把进度推一推

开发细节

因为打包的函数是按照文件名的字典序来打包的,所以我们把文件名前面加上一个 z 可以保证这个文件会出现在最后面,否则不是在最后面,可能出现先调用再定义的问题,会报错

显示不了图片

把背景图片加到 css 文件里面,但是自己的网页还是空白的

我不知道问题出在哪里,准备返回去重新听一遍教程

js 文件里面,一般对象是 html 对象,前面加上 $ 符号,不是的话就不加

找到问题所在了,有一行语法写的有点问题,少了一个等号,加上之后就可以正常显示图片了

在这里插入图片描述

梳理一下函数调用的流程

首先是主函数,就是 web.html 文件,然后调用了 zbase.jsAcGame 函数,这个函数里面调用了 js/menu/zbase.js 文件里面的 AcGameMenu 函数,这个函数里面创建了一个 div ,存到了最开始的 web.html 里面,等于说形成了一个闭环

我们可以查看一下源码
在这里插入图片描述

确实在这里创建好了,但是确实比较难以找到

修改一些宽度参数

可以看到前面展示的图片不是一个完整的图片,有一些别的图片,我们把高度宽度都设置成百分之百就可以让图片占据整个屏幕
在这里插入图片描述
全屏显示效果更佳
在这里插入图片描述

class

因为一些专有名词自己其实记住没有什么意义,知道是怎么使用的其实更加实在,笔者初中的时候沉迷转魔方,但是其实也是只会那个最初阶的魔方公式,然后就跟着教程练会了之后,自己其实也不知道怎么就能拼好,形成了肌肉记忆了都,但是要我教会别人,我可能得再整理一下思路

class 写在 div 里面,目前这个部分写在了 js 文件里面,之后需要在 css 文件里面使用 .class_name{} 来调整这个板块的样式

一个 class 里面可以有多个描述的东西,比如这样:<div class="ac-game-menu-field-item ac-game-menu-field-item-single">

js 里面的一些细节

我写的时候一直比较模糊,现在梳理一下这个文件里面的一些代码,之后担心随着项目的推进,这个问题一直没有解决

首先目前写了两个 js 文件,一个是 game/static/js/src/zbase.js 这个文件,另一个是 game/static/js/src/menu/zbase.js 这个文件

前面的是一个整体的 js 文件,后面的是菜单部分的 js 文件

其实这两个文件最后都是放到 game/static/js/dist/game.js 里面执行的,主要是把文件分开,开发者在开发的时候更加方便,是使用了一个打包的脚本文件把所有的 js 文件全部集成到 game.js 文件里面(scripts/compress_game_js.sh)

下面分析一下 game/static/js/src/zbase.js 该文件

class AcGame{constructor(id){this.id=id;this.$ac_game=$('#'+id);this.menu=new AcGameMenu(this);}
}

这种其实是一些模板函数,构造函数,然后把一些参数传进去

下面说一下这个文件 game/static/js/src/menu/zbase.js

class AcGameMenu{constructor(root){this.root=root;this.$menu=$(`
<div class="ac-game-menu"><div class="ac-game-menu-field"><div class="ac-game-menu-field-item ac-game-menu-field-item-single">单人模式</div><div class="ac-game-menu-field-item ac-game-menu-field-item-multi">多人模式</div><div class="ac-game-menu-field-item ac-game-field-item-settings">设置</div></div>
</div>
`);this.root.$ac_game.append(this.$menu);}
}

构造函数调用了 root ,也就是前面一个文件,创建了一个菜单,然后把这个菜单加到了 root 的后面,创建菜单的时候用了 $ 表示这是一个 html 对象,具体写 html 的时候用 `` 把自己定义的 div 括起来,里面是一些简单的 htmlclass 的写法

之前大二下的时候其实学过一部分 web 的知识,所以这个不算太陌生,但是自己之前感觉和没学区别不是很大,没有转换为生产力呀

让三个按钮可以点击

this.$singel=this.$menu.find('.ac-game-menu-field-item-single');
this.$multi=this.$menu.find('.ac-game-menu-field-item-multi');
this.$settings=this.$menu.find('.ac-game-field-item-settings');  

注意 class 前面需要加上 . 才能找到这个 class

设置按钮的样式

在这里插入图片描述
现在这里有三个按钮,但是明显不是很美观,非常简陋,但是因为这个项目重点不在于前端,所以最后可能前端也不是很美观

等笔者把前端知识也学了一点之后,有时间会再完善一下,现在先稍微完善一下

vh vw 表示设置百分比的高度和宽度,比较方便
在这里插入图片描述
设置的 css 样式如下,都比较简单直观

.ac-game-menu-field{width:20vw;position:relative;top:40vh;left:19vw;
}.ac-game-menu-field-item{color:white;height:7vh;width:18vw;font-size:6vh;font-style:italic;padding:2vh;background-color:rgba(39,21,28,0.6);text-align:center;border-radius:10px;letter-spacing:0.5vx;cursor:pointer;                                                                                                                               
}

css鼠标悬停样式
实现鼠标悬停的动态效果的代码如下

.ac-game-menu-field-item:hover{transform:scale(1.2);transition:100ms;
}

在前端实现页面的切换

menu 下面的 js 文件里面设置了一些函数,但是在前端浏览器控制台看不到自己的函数输出,不知道原因

在这里插入图片描述
按道理说自己点击了图标,在控制台会显示点击了这个按钮

使用的代码如下

start(){this.add_listening_events();}                                                                                                                                             add_listening_events(){let outer=this;this.$single_mode.click(function(){console.log("click single mode");});this.$multi_mode.click(function(){console.log("click multi mode");});this.$settings.click(function(){console.log("click settings");});}

前面还有一个 start 函数的使用,只有一行,就没有粘贴过来了

自己找了一遍没有发现问题出在哪里,现在回过头去看教程是怎么操作的,这次看仔细一点

在这里插入图片描述
目前是有一个报错和一个警告,还是有点无奈的

重新看了一遍教程,和我写的是一样的,但是为什么我的代码报错警告了,控制台输出不了想要输出的内容呢

试了一下源代码仓库的文件也是显示不行,应该不是我这边的问题了,我继续跟着教程做就行

看来不行,这一步卡住之后,后面的也和教程不一样了

点击进入到一个新界面,目前点击这个按钮进入不了新的界面
在这里插入图片描述

class AcGameMenu {constructor(root) {this.root = root;this.$menu = $(`
<div class="ac-game-menu"><div class="ac-game-menu-field"><div class="ac-game-menu-field-item ac-game-menu-field-item-single-mode">单人模式</div><br><div class="ac-game-menu-field-item ac-game-menu-field-item-multi-mode">多人模式</div><br><div class="ac-game-menu-field-item ac-game-menu-field-item-settings">设置</div></div>
</div>
`);this.root.$ac_game.append(this.$menu);this.$single_mode = this.$menu.find('.ac-game-menu-field-item-single-mode');this.$multi_mode = this.$menu.find('.ac-game-menu-field-item-multi-mode');this.$settings = this.$menu.find('.ac-game-menu-field-item-settings');this.start();}start() {this.add_listening_events();}add_listening_events() {let outer = this;this.$single_mode.click(function(){outer.hide();outer.root.playground.show();});this.$multi_mode.click(function(){console.log("click multi mode");});this.$settings.click(function(){console.log("click settings");});}show() {  // 显示menu界面this.$menu.show();}hide() {  // 关闭menu界面this.$menu.hide();}
}

menu 里面的 js 文件写成上面这样可以跳转和在控制台正常显示输出,但是还是有一些报错

playground 里面的 js 文件重新写了一遍,现在没有报错了,估计是因为一些肉眼看不见的标点符号之类的错误,因为笔者有时候操作 tmuxvim 有一些误操作,所以以后宁愿写的慢一点,也不要把代码敲错,debug 的时间远大于节省的这一点点打字的时间
在这里插入图片描述

结语

这个菜单就算结束了,确实作为独立开发者,自己的源码还是闭源比较好,但是这个作为自己的学习项目的话,开源影响也不是很大,等自己以后独立开发的时候再闭源,目前自己的 github 其实有含金量的东西,可以认为是没有的哈哈哈

以后要是自己一个人一个月,可以上线一款 app ,想想还是非常激动的

相关文章:

django_创建菜单(实现整个项目的框架,调包)

文章目录 前言代码仓库地址在线演示网址启动网站的时候出现错误渲染路径的一些说明文件结构网页显示一条错误路由顺序js打包出现问题的代码函数没有起作用关于进度开发细节显示不了图片梳理一下函数调用的流程修改一些宽度参数classjs 里面的一些细节让三个按钮可以点击设置按钮…...

最新全新UI异次元荔枝V4.4自动发卡系统源码

简介&#xff1a; 最新全新UI异次元荔枝V4.4自动发卡系统源码 更新日志&#xff1a; 1增加主站货源系统 2支持分站自定义支付接口 3目前插件大部分免费 4UI页面全面更新 5分站可支持对接其他分站产品 6分站客服可自定义 7支持限定优惠 图片&#xff1a; 会员中心截图&…...

PyTorch安装CUDA标准流程(可解决大部分GPU无法使用问题)

最近一段时间在研究PyTorch中的GPU的使用方法&#xff0c;之前曾经安装过CUDA&#xff0c;不过在PyTorch中调用CUDA时无法使用。考虑到是版本不兼容问题&#xff0c;卸载后尝试了其他的版本&#xff0c;依旧没有能解决问题&#xff0c;指导查阅了很多资料后才找到了解决方案。 …...

C++从入门到起飞之——初始化列表类型转换static成员 全方位剖析!

&#x1f308;个人主页&#xff1a;秋风起&#xff0c;再归来~&#x1f525;系列专栏&#xff1a;C从入门到起飞 &#x1f516;克心守己&#xff0c;律己则安 目录 1、初始化列表 2、 类型转换 3. static成员 4、完结散花 1、初始化列表 • 之前我们实现构造函数…...

PHP框架简介

PHP是一种广泛使用的开源脚本语言&#xff0c;主要用于Web开发&#xff0c;它可以创建动态交互式Web页面。而PHP框架则是一套用于开发Web应用程序的工具和库的集合&#xff0c;它可以帮助开发者更高效地编写PHP代码&#xff0c;提高开发速度和代码的可维护性。 理解PHP框架&am…...

微信小程序-粘性组件

再次完善&#xff1a;将区域设置为粘性时&#xff0c;会脱离原有文档&#xff0c;使得出现下方页面突然遮盖一部分&#xff0c;不平滑 解决&#xff1a;给出一个新的空白区域&#xff0c;宽高与粘性区域一致&#xff0c;wx:if 控制其显示 /****************/ 后续补充&#…...

微服务注册中心

目录 1.微服务的注册中心 1.1 注册中⼼的主要作⽤ 1.2 常⻅的注册中⼼ 2.nacos简介 2.1 nacos实战⼊⻔ 2.2.1 搭建nacos环境 2.2.2 将商品微服务注册到nacos 3.服务调⽤Ribbon⼊⻔ 3.1 Ribbon概述 3.1.1 什么是Ribbon 3.1.2 Ribbon的主要作⽤ 3.2.2 ⼯程改造 4.服务…...

HDU1032——The 3n + 1 problem,HDU1033——Edge,HDU1034——Candy Sharing Game

目录 HDU1032——The 3n 1 problem 题目描述 运行代码 代码思路 HDU1033——Edge 题目描述 运行代码 代码思路 HDU1034——Candy Sharing Game 题目描述 运行代码 代码思路 HDU1032——The 3n 1 problem 题目描述 Problem - 1032 运行代码 #include <iostr…...

内网对抗-隧道技术篇防火墙组策略HTTP反向SSH转发出网穿透CrossC2解决方案

知识点&#xff1a; 1、C2/C2上线-CrossC2插件-多系统平台支持 2、隧道技术篇-应用层-SSH协议-判断&封装&建立&穿透 3、隧道技术篇-应用层-HTTP协议-判断&封装&建立&穿透隧道技术主要解决网络通讯问题&#xff1a;遇到防火墙就用隧道技术&#xff0c;…...

实战案例:如何用ChatGPT生成适合不同领域的高质量文章

随着人工智能技术的快速进展&#xff0c;制作高质量文章已变得轻而易举。尤其是OpenAI推出的ChatGPT&#xff0c;极大地简化了写作任务。接下来&#xff0c;本文将通过具体案例&#xff0c;详解如何利用ChatGPT撰写不同领域的高品质文章。 背景&#xff1a;光辉AI交流-免费问答…...

多线程案例-单例模式

单例模式是设计模式之一&#xff0c;能保证某个类在程序中只存在唯一一份实例&#xff0c;而不会创建出多个实例 单例模式的具体实现方法有很多&#xff0c;最常见的是 “饿汉” 和 “懒汉” 两种。 饿汉模式 class Singlenton{private static Singlenton instance new Sin…...

P6 优化篇 - 数据折线图可视化步骤

增加新页面, 则需要在 page.json里面增加页面信息 2.添加目录, 和路径 同时也要添加目录了 , 新建目录LineChart , 添加文件LineChart.vue 4.LineChart.vue 直接复制黏贴 <template><view class"container"><!-- 图表显示区域 --><view cla…...

优选算法之二分查找(上)

目录 一、二分查找 1.题目链接&#xff1a;704. 二分查找 2.题目描述&#xff1a; 3.算法流程&#xff1a; 4.算法代码&#xff1a; 二、在排序数组中查找元素的第一个和最后一个位置 1.题目链接&#xff1a;34. 在排序数组中查找元素的第一个和最后一个位置 2.题目描述…...

JavaScript(16)——定时器-间歇函数

开启定时器 setInterval(函数,间隔时间) 作用&#xff1a;每隔一段时间调用这个函数&#xff0c;时间单位是毫秒 例如&#xff1a;每一秒打印一个hello setInterval(function () { document.write(hello ) }, 1000) 注&#xff1a;如果是具名函数的话不能加小括号&#xf…...

VUE中的重点*

1.MVC 和 MVVM的区别&#xff1f; MVC&#xff1a;M&#xff08;model数据&#xff09;、V&#xff08;view视图&#xff09;&#xff0c;C&#xff08;controlle控制器&#xff09; 缺点是前后端无法独立开发&#xff0c;必须等后端接口做好了才可以往下走&#xff1b; 前端没…...

rabbitmq生产与消费

一、rabbitmq发送消息 一、简单模式 概述 一个生产者一个消费者模型 代码 //没有交换机&#xff0c;两个参数为routingKey和消息内容 rabbitTemplate.convertAndSend("test1_Queue","haha");二、工作队列模式 概述 一个生产者&#xff0c;多个消费者&a…...

spring-boot3.x整合Swagger 3 (OpenAPI 3) +knife4j

1.简介 OpenAPI阶段的Swagger也被称为Swagger 3.0。在Swagger 2.0后&#xff0c;Swagger规范正式更名为OpenAPI规范&#xff0c;并且根据OpenAPI规范的版本号进行了更新。因此&#xff0c;Swagger 3.0对应的就是OpenAPI 3.0版本&#xff0c;它是Swagger在OpenAPI阶段推出的一个…...

SM2隐式证书用户公私钥生成python代码实现

GMT0130-2023具体描述基于SM2算法的隐式证书公钥机制&#xff0c;这里尝试Python代码实现密钥生成部分功能&#xff0c;具体如下&#xff0c;椭圆曲线计算实现使用python第三方包gmssl。 #生成用户私钥Da和公钥Pa&#xff0c;其中Da&#xff08;tAdA)mod N&#xff0c;Pa可以直…...

IEC104转MQTT网关快速实现了IEC104到MQTT的转换和数据交互

随着智能电网技术的不断进步&#xff0c;IEC 104&#xff08;IEC 60870-5-104&#xff09;协议作为电力系统中重要的远动通信标准&#xff0c;正逐步融入更广泛的物联网生态系统中。亚马逊AWS&#xff08;Amazon Web Services&#xff09;&#xff0c;作为全球领先的云计算服务…...

【OpenCV C++20 学习笔记】调节图片对比度和亮度(像素变换)

调节图片对比度和亮度&#xff08;像素变换&#xff09; 原理像素变换亮度和对比度调整 代码实现更简便的方法结果展示 γ \gamma γ校正及其实操案例线性变换的缺点 γ \gamma γ校正低曝光图片矫正案例代码实现 原理 关于OpenCV的配置和基础用法&#xff0c;请参阅本专栏的其…...

web UI自动化测试 浏览器模式设置

自动化之浏览器模式设置 做selenium UI自动化测试时&#xff0c;每次都需要启动浏览器、用例运行结束后再关闭浏览器&#xff0c;浏览器启动相当地耗费时间&#xff0c;在本机运行用例的话还得放开双手&#xff0c;可以使用chrome的headless模式&#xff0c;让浏览器在后台运行…...

OpenCV图像滤波(1)双边滤波函数bilateralFilter的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 功能描述 bilateralFilter是图像处理和计算机视觉领域中的一种高级图像滤波技术&#xff0c;特别设计用于在去除噪声的同时保留图像的边缘和细节。相比于传…...

前端开发使用Big.js精算避免误差

1、下载 npm install big.js 全局引入还是局部引入可根据项目框架及个人需求 2、静态引入 < script src https://unpkg.com/big.js6.0.0/big.mjs > </ script > 或者 import Big from https://raw.githubusercontent.com/mikemcl/big.js/v6.0.0/big.mjs; i…...

在 Ubuntu 22.04/20.04 安装 CVAT 和 SAM 指南

1. 安装 Docker 和 Docker Compose sudo apt-get update sudo apt-get --no-install-recommends install -y \apt-transport-https \ca-certificates \curl \gnupg-agent \software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-ke…...

【SpringCloud】 微服务分布式环境下的事务问题,seata大合集

目录 微服务分布式环境下的事务问题 分布式事务 本地事务 BASE理论与强弱一致性 BASE理论 强弱一致性 常见分布式事务解决方案 - 2PC 常见分布式事务解决方案 - TCC 常见分布式事务解决方案 - 最大努力通知 常见分布式事务解决方案 - 最终一致性 Seata介绍与术语 Seata…...

vite5+vue3开发阅读APP实战笔记20240725

目前界面长成这样&#xff1a; 配置别名 修改vite.config.js import {defineConfig} from vite import vue from vitejs/plugin-vue import path from "path"// https://vitejs.dev/config/ export default defineConfig({server: {open: true,port: 8088,},plug…...

Intel任命Micron技术开发主管领导Intel Foundry制造运营

- **新闻要点**&#xff1a;Intel聘请了Micron的技术开发主管Dr. Naga Chandrasekaran担任首席全球运营官、执行副总裁以及Intel Foundry制造和供应链组织的总经理。他将负责Intel的所有制造运营事务。 #### 任命背景 - **领导团队**&#xff1a;Chandrasekaran将成为Intel执行…...

苹果发布iOS 18 Beta 4,新增CarPlay 壁纸等多项功能改进

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 iOS 18 Beta 4&#xff1a;新功能与改进的探索 苹果公司在2024年7月9日向开发者推送了iOS 18的第四个开发者预览版Beta 4更新&#xff0c;内部…...

谷粒商城实战笔记-50-51-商品分类的删除

文章目录 一&#xff0c;50-商品服务-API-三级分类-删除-逻辑删除1&#xff0c;逻辑删除的配置1.1 配置全局的逻辑删除规则&#xff08;可省略&#xff09;1.2 配置逻辑删除Bean&#xff08;可省略&#xff09;1.3 Bean相应字段上加上注解TableLogic 2&#xff0c;后台接口开发…...

vue3+g2plot实现词云图

词云图 效果预览: 核心代码: import {WordCloud } from @antv/g2plot;fetch(https://gw.alipayobjects.com/os/antfincdn/jPKbal7r9r/mock.json).then((res) => res.json()).then((data) => {const wordCloud = new WordCloud(container, {data,wordField: x,weigh…...

Golang | Leetcode Golang题解之第273题整数转换英文表示

题目&#xff1a; 题解&#xff1a; var (singles []string{"", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"}teens []string{&…...

使用C#手搓Word插件

WordTools主要功能介绍 编码语言&#xff1a;C#【VSTO】 1、选择 1.1、表格 作用&#xff1a;全选文档中的表格&#xff1b; 1.2、表头 作用&#xff1a;全选文档所有表格的表头【第一行】&#xff1b; 1.3、表正文 全选文档中所有表格的除表头部分【除第一行部分】 1.…...

WordPress主题追格企业官网主题免费开源版V1.1.6

追格企业官网主题免费开源版由追格开发的一款开源wordpress主题&#xff0c;专为企业建站和追格企业官网小程序&#xff08;开源版&#xff09;PC配套而设计&#xff0c;功能集新闻动态、留言反馈、产品与服务、公司简介、联系我们等模块。...

uniapp引入自定义图标

目录 一、选择图标&#xff0c;加入购物车 二、下载到本地 三、导入项目 四、修改字体引用路径 五、开始使用 这里以扩展iconfont图标为例 官网&#xff1a;iconfont-阿里巴巴矢量图标库 一、选择图标&#xff0c;加入购物车 二、下载到本地 直接点击下载素材&#xff0…...

pytorch-scheduler(调度器)

scheduler简介 scheduler(调度器)是一种用于调整优化算法中学习率的机制。学习率是控制模型参数更新幅度的关键超参数,而调度器根据预定的策略在训练过程中动态地调整学习率。 优化器负责根据损失函数的梯度更新模型的参数,而调度器则负责调整优化过程中使用的特定参数,通…...

防火墙与入侵检测系统(IDS/IPS)在现代网络安全中的关键角色

在数字化日益加速的今天&#xff0c;网络安全变得尤为重要。随着网络攻击的复杂性和频率不断增加&#xff0c;保护关键信息资产已成为各大小组织的首要任务。防火墙&#xff08;Firewall&#xff09;和入侵检测系统&#xff08;Intrusion Detection System&#xff0c;IDS&…...

Python 之 os、open、json、pickle 模块的“疯狂”探险记

1.open函数的使用 Python 中的 open() 函数是处理文件的标准方法。它允许你打开一个文件&#xff0c;并对其进行读取、写入或追加操作 open(file,mode,encoding)函数的格式&#xff1a;file&#xff1a;文件路径 mode&#xff1a;打开方式&#xff08;读&#xff1a; r写&…...

CTF-Web习题:2019强网杯 UPLOAD

题目链接&#xff1a;2019强网杯 UPLOAD 解题思路 打开靶场如下图所示&#xff0c;是一个注册和登录界面 那就注册登录一下&#xff0c;发现是一个提交头像的页面&#xff1a; 试了一下只有能正确显示的png图片才能提交成功&#xff0c;同时F12拿到cookie&#xff0c;base6…...

Unity环境渲染与反射探针的深入探索

目录 环境渲染基础 光源设置 材质与光照贴图 反射探针&#xff08;Reflection Probes&#xff09;详解 反射探针的创建与配置 材质中的反射探针设置 实践案例 实践案例&#xff1a;室内场景中的反射效果 场景设置 反射探针配置 Unity代码示例&#xff08;非直接配置…...

vue3 父组件 props 异步传值,子组件接收不到或接收错误

1. 使用场景 我们在子组件中通常需要调用父组件的数据&#xff0c;此时需要使用 vue3 的 props 进行父子组件通信传值。 2. 问题描述 那么此时问题来了&#xff0c;在使用 props 进行父子组件通信时&#xff0c;因为数据传递是异步的&#xff0c;导致子组件无法成功获取数据…...

[C++]TinyWebServer

TinyWebServer 文章目录 TinyWebServer1 主体框架2 Buffer2.1 向Buffer写入数据2.2 从Buffer读取数据2.3 动态扩容2.4 从socket中读取数据2.5 具体实现 3 日志系统3.1 生产者-消费者模型3.2 数据一致3.3 代码 4 定时器4.1 调整堆中元素操作4.2 堆的操作4.2.1 增4.2.2 删4.2.3 改…...

Uniswap价格批量查询与ws订阅行情

Uniswap价格批量查询与ws订阅行情 由于 Uniswap V1 版本必须包含 ETH 所以两个 token 之间交换必须先换成 ETH 去中转效率很低已经弃用了 由于 V3 版本 CLMM 和 V4 版本的 DLMM 数学模型过于复杂&#xff0c;还是先从 AMM 模型的 V2 进行入门和学习 Uniswap 三种合约 Unisw…...

vue 实战 区域内小组件元素拖拽 示例

<template><div><el-button type"primary" click"showDialog true">快捷布局</el-button><el-dialog title"快捷布局配置" :visible.sync"showDialog"><el-row :gutter"20"><el-co…...

C++多线程编程中的锁详解

在现代软件开发中&#xff0c;多线程编程是提升应用程序性能和响应能力的重要手段。然而&#xff0c;多线程编程也带来了数据竞争和死锁等复杂问题。为了确保线程间的同步和共享数据的一致性&#xff0c;C标准库提供了多种锁机制。 1. std::mutex std::mutex是最基础的互斥锁…...

van-dialog 组件调用报错

报错截图 报错原因 这个警告表明 vue 在渲染页面时遇到了一个未知的自定义组件 <van-dialog>&#xff0c;并且提示可能是由于未正确注册该组件导致的。在 vue 中&#xff0c;当我们使用自定义组件时&#xff0c;需要先在 vue 实例中注册这些组件&#xff0c;以便 vue 能…...

【Django】在vscode中运行调试Django项目(命令及图形方式)

文章目录 命令方式图形方式默认8000端口设置自定义端口 命令方式 python manage.py runserver图形方式 默认8000端口 设置自定义端口...

麦田物语第十三天

系列文章目录 麦田物语第十三天 文章目录 系列文章目录一、实现根据物品详情显示 ItemTooltip1.ItemTooltips脚本编写二、制作 Player 的动画一、实现根据物品详情显示 ItemTooltip 1.ItemTooltips脚本编写 首先创建Scripts->Inventory->UI->ItemTooltip脚本,然后…...

【Git多人协作开发】不同的分支下的多人协作开发模式

目录 0.前言背景 1.开发者1☞完成准备工作&协作开发 1.1查看分支情况 1.2创建本地分支feature-1 1.3三板斧 1.4push推本地分支feature-1到远程仓库 2.开发者2☞完成准备工作&协作开发 2.1创建本地分支feature-2 2.2三板斧 2.2push推送本地feature-2到远程仓库…...

Lua 复数计算器

Lua复数计算器 主要包括复数的加减乘除操作&#xff0c;以及打印 编写复数类 -- ***** 元类 ***** Complex {real 0, imag 0}-- 构造函数 function Complex:new(real, imag)local o o or {}o.real real or 0o.imag imag or 0setmetatable(o, self)self.__index selfr…...

深入MySQL中的IF和IFNULL函数

在数据库查询中&#xff0c;我们经常需要根据条件来决定数据的显示方式。MySQL提供了多种内置函数来帮助我们实现这种条件逻辑&#xff0c;其中IF和IFNULL是两个非常有用的函数。在这篇博客中&#xff0c;我们将深入探讨这两个函数的用法和它们在实际查询中的应用。 IF函数 I…...