最新要闻
- 京东代言人!中国选手谷爱凌夺2023年首个冠军
- 马斯克没钱了?推特拍卖数百件办公资产:“小蓝鸟”雕像10万美元成交
- 今日关注:灵山“网红牛”不幸被车撞死:一片狼藉
- 天天快报!无短板办公利器!联想小新Air 14 Plus图赏
- 短讯!深圳一公司年会送员工保时捷跑车:还有宝马、特斯拉
- 全球今头条!商务部:每卖4辆新车就有1辆新能源
- TGA年度最佳游戏 《双人成行》Steam新史低:73.26元
- 微资讯!八核酷睿+满血RTX 3060!机械革命极光Pro图赏
- 春节档电影票均价7年来首降:你会选择看哪部电影过年?
- 一加11独家适配!国产魂Like手游《帕斯卡契约》新增高品质震动
- 国人不识货?本田思域TYPE R因太畅销在日本暂停接单
- 全球速读:今年这回 我们总可以对春节档有点期待了吧
- 热消息:雷军回顾2022年:小米13得到大家认可最开心
- 育碧喜加一:《雷曼:疯狂兔子》免费领!兔年玩疯兔
- 世界热门:大摆锤高处停摆近10分钟 游乐场回应:两边游客体重相近所致
- 焦点快报!新年第一月iPhone已降价2次!苹果14首降超千元 国内用户喊真香抄底
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
Obsidian 插件(一):DataView 的使用
- DataView 的使用
- 一、 环境配置
- 二、 入门介绍
- 1、 快速开始
- 3、 创建查询
- 4、 系统字段
- 三、 接口讲解
- 1、 表达式
- 1.1 概述
- 1.2 表达式类型
- 1.3 特定类型的交互
- 2、 函数
- 2.1 构造器
- 2.2 常用函数
- 2.3 工具函数
- 1、 表达式
DataView 的使用
一、 环境配置
首先,我们需要安装 Obsidian,同时,在这里 Obsidian 的基本使用就不会去介绍了。
Dataview是一个覆盖OB知识库的实时索引和查询引擎。可以将数据(如标签、日期、代码段、数字等)与笔记相关联,然后查询(如筛选、排序、转换)数据。用一种数据库处理的形式,通过查找字段并筛选,进而使用列表、表格的形式展现出来,也支持JavaScript的高级查询形式。
(资料图片仅供参考)
安装方式:
或者,我们也可以使用 GitHub 来进行安装,我们将文件下载下来,解压到
。
二、 入门介绍
1、 快速开始
官方文档:https://blacksmithgu.github.io/obsidian-dataview/
Dataview 是一个在你的知识库中生成数据的动态视图的高级查询引擎/索引。你可以通过使用任意和页面相关联的值,如标签(tag),文件夹(folder), 内容(content),或者字段(field)来生成视图。
我们可以使用 ::
来生成 dataview 的数据
或者,这些信息放在 frontmatter,如:
那我们查询的话,
```dataviewLIST "
**电影名**:" + Movie + "
**简介**:" + Brief + "
**评分**:" + Score + "
**年份**:" + Year + "
**类型**:" + Type + " " + Location FROM #entertain/movie WHERE contains(file.folder, "record_2023")SORT Date desc
那么,我们就可以生成这样的一个页面:![](https://gitee.com/liuzhongkun1/img-store/raw/master/20231/1674201212_h35cnv6o0r.png1674201211592.png)### 2、 页面和字段dataview的核心数据抽象是*页面(page)* ,指在你的库中包含*字段(field)* 的markdwon页面。*字段* 是一段任意命名的数据 ——文本,日期,时间段,链接。 这些可被dataview理解,展示,筛选。字段可以通过三种方式定义:1. **扉页(Frontmatter)**: 所有的YAML 扉页内容都将自动的转换成dataview字段。 ```markdown --- tags: daily_node study/obsidian entertain/movie aliases: describe: Obsidian 中 DataView 的使用 Date: 2023-01-20 Time: 09:26:28 Author: Steve Anthony Email: 3500515050@qq.com ---
内联字段(inline field): 一行格式为
的内容将自动的被dataview解析为一个字段,请注意,你可以对::
使用标准的Markdown格式,但以后将不再支持。Movie:: [猎屠](https://v.qq.com/x/cover/mzc00200e7w52db/b0044upikcw.html)Brief:: 影片讲述某地发生电信诈骗事件,一名警员潜伏到中缅边境,深入电信诈骗中心,与诈骗犯罪集团斗智斗勇的故事,是一部反电信诈骗题材的院线片。Score:: 7.6Year:: 2022Type:: 犯罪 动作 剧情Location:: 内地
隐含字段(implicit): dataview自带大量的元数据对页面进行注释,如文件的创建日期、任何相关的日期、文件中的链接、标签等。
如果文件的标题内有一个日期(格式为yyyy-mm-dd或yyyymmdd),或者有一个Date字段/inline字段,它也有以下属性:
file.day
: 一个该文件的隐含日期。
字段类型:
dataview支持数种不同的字段类型:
- 文本(Text): 全局默认为文本。如果一个字段不匹配其它具体的类型,默认为一段纯文本。
- 数字(Number): 数字类似于"6" 和 "3.6"。
- 布尔值(Boolean): true/false, 就像编程中的概念。
- 日期(Date): ISO8601 标准定义的通用日期格式
YYYY-MM[-DDTHH:mm:ss]
. 月份后面的内容都是可选的。 - 时间段(Duration): 时间段的格式为
, 就像
6 hours
或者4 minutes
。支持常见的英文缩写如6hrs
或者2m
。 - 链接(Link): 普通的Obsidian 链接如
[[Page]]
或者[[Page|Page Display]]
。 - 列表(List): YAML中,其它dataview字段组成的列表将作为普通的YAML列表定义;对于内联字段,它们就只是逗号分隔的列表。
- 对象(Object):名称(name)到dataview字段的映射。这仅能在YAML扉页中利用通用的YANML对象语法进行定义。 对象语法:
field: value1: 1 value2: 2 ...
不同的字段类型非常重要。这能确保dataview理解怎样合理的对值进行比较和排序,并提供不同的操作。
3、 创建查询
一旦你给相关的页面添加了有用的数据,你就可以在某一个地方展示它或者操作它。dataview通过dataview
代码块建立内联查询,写下查询代码,将会动态运行并在笔记的预览窗口展示。写这样的查询,有三种方式:
- dataview的查询语言是一个用于快速创建视图,简化的,类SQL的语言。它支持基本的算术和比较操作,对基础应用很友好。
- 查询语言也提供内联查询,允许你直接在一个页面内嵌入单个值——通过
= date(tody)
创建今天的日期,或者通过= [[Page]].value
来嵌入另一个页面的字段。 - dataview JavaScript API为你提供了 JavaScript 的全部功能,并为拉取 Dataview 数据和执行查询提供了 DSL ,允许你创建任意复杂的查询和视图。
与JavaScript API相比,查询语言的功能往往比较滞后,主要是因为JavaScript API更接近实际代码;相反,查询语言更稳定,在Dataview的重大更新中不太可能出现故障。
还可以创建日历:
CALENDAR DateFROM #daily_nodeWHERE contains(file.folder, "record_2023")
4、 系统字段
FROM:
FROM
语句决定了哪些页面在初始被收集并传递给其他命令进行进一步的筛选。你可以从任何来源中选择,来源可选择文件夹,标签,内链和外链。- 标签(Tags): 从标签(包含子标签)中选择,使用
FROM #tag
。 - 文件夹(Folders): 从文件夹(包含子文件夹)中选择,使用
FROM "folder"
。 - 链接(Links): 你可以选择一个链接到该文件的链接,也可以选择该文件链接到其它页面的链接:
- 获得链接到
[[note]]
的所有页面,使用FROM [[note]]
。 - 获得从
[[note]]
链接的所有页面(如,文件中的所有链接),使用FROM outgoing([[note]])
。
你可以对过滤器进行组合,以便使用 "and "和 "or "获得更高级的来源。
举个例子
#tag and "folder"
将返回在folder
中和包含#tag
的所有页面。[[Food]] or [[Exercise]]
将给出任何链接到[[Food]]
或[[Exercise]]
的页面。
- 标签(Tags): 从标签(包含子标签)中选择,使用
WHERE: 笔记进行过滤,聚合条件
SORT:根据什么条件进行排序
你可以给出多个字段来进行排序。排序将在第一个字段的基础上进行。接着,如果出现相等,第二个字段将被用来对相等的字段进行排序。如果仍然有相等,将用第三个字段进行排序,以此类推。
SORT field1 [ASCENDING/DESCENDING/ASC/DESC], ..., fieldN [ASC/DESC]
GROUP BY:
对一个字段的所有结果进行分组。每个唯一的字段值产生一行,它有两个属性:
- 一个对应于被分组的字段
- 一个是
rows
数组字段,包含所有匹配的页面。
LIMIT: 限制输出多少条结果
FLATTEN: 根据字段或计算将一个结果拆分为多个结果。
FLATTEN fieldFLATTEN (computed_field) AS name
三、 接口讲解
1、 表达式
1.1 概述
Dataview查询语言表达式可以是任何能产生一个值的量,所有字段都是表达式,字面值如6
,已计算的值如field - 9
都是一个表达式,做一个更具体的总结:
# 常规field (directly refer to a field)simple-field (refer to fields with spaces/punctuation in them like "Simple Field!")a.b (if a is an object, retrieve field named "b")a[expr] (if a is an object or array, retrieve field with name specified by expression "expr")f(a, b, ...) (call a function called `f` on arguments a, b, ...)# 算术运算a + b (addition)a - b (subtraction)a * b (multiplication)a / b (division)# 比较运算a > b (check if a is greater than b)a < b (check if a is less than b)a = b (check if a equals b)a != b (check if a does not equal b)a <= b (check if a is less than or equal to b)a >= b (check if a is greater than or equal to b)# 特殊操作[[Link]].value (fetch `value` from page `Link`)
1.2 表达式类型
比较运算符:
你可以使用各种比较运算符来比较大多数数值。<
, >
, <=
, >=
, =
, !=
. 这产生了一个布尔的真或假值,可以在查询中的`WHERE"块中使用。
对象获数组:
你可以通过索引操作符array[
从数组中索引数据,其中
是任何已计算的表达式。 数组是以0为索引的,所以第一个元素是索引0,第二个元素是索引1,以此类推。 例如,list(1, 2, 3)[0] = 1
.
你也可以使用索引操作符从对象(将文本映射到数据值)中检索数据,此时的索引是字符串/文本而不是数字。你也可以使用快捷方式object.
,其中
是值的索引。例如object("yes", 1).yes = 1
。
函数的调用
Dataview支持各种用于操作数据的函数,这些函数在函数文档中有完整描述。它们的一般语法是function(arg1, arg2, ...)
- 即lower("yes")
或 regexmatch("text", ".+")
。
1.3 特定类型的交互
大多数dataview类型与运算符有特殊的相互作用,或者有额外的字段可以使用索引操作符索引。
日期:
你可以通过索引来检索一个日期的不同组成部分:date.year
,date.month
,date.day
,date.hour
。 date.minute
, date.second
, date.week
。你也可以将时间段添加到日期中以获得新的日期。
时间段:
时间段可以相互添加,也可以添加到日期。你可以通过索引来检索一个时间段的各种组成部分。duration.years
, duration.months
, duration.days
, duration.hours
, duration.minutes
, duration.seconds
.
链接:
你可以 "通过索引 "一个链接来获得相应页面上的值。例如,[[Link]].value
将获得来自Link
页面上的value
值。
2、 函数
2.1 构造器
构造器创建值
object(key1, value1, ...)
用给定的键和值创建一个新的对象。在调用中,键和值应该交替出现,键应该总是字符串/文本。
object() => empty objectobject("a", 6) => object which maps "a" to 6object("a", 4, "c", "yes") => object which maps a to 4, and c to "yes"
list(value1, value2, ...)
用给定的值创建一个新的列表。
list() => empty listlist(1, 2, 3) => list with 1, 2, and 3list("a", "b", "c") => list with "a", "b", and "c"
date(any)
从提供的字符串、日期或链接对象中解析一个日期,解析不出返回null。
date("2020-04-18") = date([[2021-04-16]]) =
number(string)
从给定的字符串中抽出第一个数字,并返回该数字。如果字符串中没有数字,则返回null。
number("18 years") = 18number(34) = 34number("hmm") = null
link(path, [display])
从给定的文件路径或名称构建一个链接对象。如果有两个参数,第二个参数是链接的显示名称。
link("Hello") => link to page named "Hello"link("Hello", "Goodbye") => link to page named "Hello", displays as "Goodbye"
elink(url, [display])
构建一个指向外部网址的链接(如www.google.com
)。如果有两个参数,第二个参数是该链接的显示名称。
elink("www.google.com") => link element to google.comelink("www.google.com", "Google") => link element to google.com, displays as "Google"
2.2 常用函数
数值操作:
round(number, [digits])
将一个数字四舍五入到指定的位数。如果没有指定第二个参数,则舍入到最接近的整数。 否则,四舍五入到给定的位数。
round(16.555555) = 17round(16.555555, 2) = 16.56
对象,数组和字符串操作:
对容器对象内部的值进行操作的操作。
contains(object|list|string, value)
检查给定的容器类型中是否有给定的值。这个函数的行为稍有不同,它基于第一个参数是一个对象,一个列表,还是一个字符串。
- 对于对象,检查该对象是否有一个给定名称的键。如:
contains(file, "ctime") = true contains(file, "day") = true (if file has a date in its title, false otherwise)
- 对于列表,检查数组中是否有元素等于给定的值。如:
contains(list(1, 2, 3), 3) = true contains(list(), 1) = false
- 对于字符串,检查给定的值是否是字符串的子串。
contains("hello", "lo") = true contains("yes", "no") = false
extract(object, key1, key2, ...)
从一个对象中抽出多个字段,创建一个抽出字段的新对象。
extract(file, "ctime", "mtime") = object("ctime", file.ctime, "mtime", file.mtime)extract(object("test", 1)) = object()
sort(list)
排序列表,返回一个排序好的新列表。
sort(list(3, 2, 1)) = list(1, 2, 3)sort(list("a", "b", "aa")) = list("a", "aa", "b")
reverse(list)
反转列表,返回一个反转好的新列表。
reverse(list(1, 2, 3)) = list(3, 2, 1)reverse(list("a", "b", "c")) = list("c", "b", "a")
length(object|array)
返回一个对象中的字段数量,或一个数组中的元素数量。
length(list()) = 0length(list(1, 2, 3)) = 3length(object("hello", 1, "goodbye", 2)) = 2
sum(array)
数组中数值元素求和。
sum(list(1, 2, 3)) = 6
all(array)
只有当数组中的所有值都为真,才会返回 "true"。你也可以给这个函数传递多个参数,只有当所有的参数都为真时,它才会返回`true"。
all(list(1, 2, 3)) = trueall(list(true, false)) = falseall(true, false) = falseall(true, true, true) = true
any(array)
只要数组中有值为真,便返回true
。也可以给这个函数传递多个参数,只要有参数为真,便返回true
。
any(list(1, 2, 3)) = trueany(list(true, false)) = trueany(list(false, false, false)) = falseall(true, false) = trueall(false, false) = false
none(array)
如果数组中没有元素,返回none
。
join(array)
将一个数组中的元素连接成一个字符串(即在同一行呈现所有的元素)。如果有第二个参数,那么每个元素将被给定的分隔符分开。
join(list(1, 2, 3)) = "1, 2, 3"join(list(1, 2, 3), " ") = "1 2 3"join(6) = "6"join(list()) = ""
字符串操作:
regexmatch(pattern, string)
检查给定的字符串是否与给定的模式相匹配(使用JavaScript regex引擎)。
regexmatch("\w+", "hello") = trueregexmatch(".", "a") = trueregexmatch("yes|no", "maybe") = false
regexreplace(string, pattern, replacement)
用 "replacement "替换所有在 "string "中匹配regexpattern
的实例。这使用了JavaScript的替换方法,所以你可以使用特殊字符如$1
来指代第一个捕获组,以此类推。
regexreplace("yes", "[ys]", "a") = "aea"regexreplace("Suite 1000", "\d+", "-") = "Suite -"
replace(string, pattern, replacement)
用replacement
替换string
中的所有pattern
实例。
replace("what", "wh", "h") = "hat"replace("The big dog chased the big cat.", "big", "small") = "The small dog chased the small cat."replace("test", "test", "no") = "no"
lower(string)
将一个字符串所有字符转换为小写字符。
lower("Test") = "test"lower("TEST") = "test"
upper(string)
将一个字符串所有字符转换为大写字符。
upper("Test") = "TEST"upper("test") = "TEST"
2.3 工具函数
default(field, value)
如果field
为空,返回value
;否则返回field
。对于用默认值替换空值很有用。例如,要显示尚未完成的项目,使用"incomplete"
作为其默认值。
default(dateCompleted, "incomplete")
默认值在两个参数中都是矢量;如果你需要在一个列表参数中明确使用默认值,请使用ldefault
,它与默认值相同,但没有被矢量化。
default(list(1, 2, null), 3) = list(1, 2, 3)ldefault(list(1, 2, null), 3) = list(1, 2, null)
choice(bool, left, right)
一个原始的if语句--如果第一个参数为真,则返回第二个参数的内容;否则,返回第三个参数的内容。
choice(true, "yes", "no") = "yes"choice(false, "yes", "no") = "no"choice(x > 4, y, z) = y if x > 4, else z
striptime(date)
剥离日期中的时间部分,只留下年、月、日。如果你在比较日期的时候不在乎时间,这种方式挺好。
striptime(file.ctime) = file.cdaystriptime(file.mtime) = file.mday
Obsidian 插件(一):DataView 的使用
天天短讯!单向循环链表
京东代言人!中国选手谷爱凌夺2023年首个冠军
马斯克没钱了?推特拍卖数百件办公资产:“小蓝鸟”雕像10万美元成交
今日关注:灵山“网红牛”不幸被车撞死:一片狼藉
天天快报!无短板办公利器!联想小新Air 14 Plus图赏
短讯!深圳一公司年会送员工保时捷跑车:还有宝马、特斯拉
全球聚焦:单向链表
全球今头条!商务部:每卖4辆新车就有1辆新能源
TGA年度最佳游戏 《双人成行》Steam新史低:73.26元
微资讯!八核酷睿+满血RTX 3060!机械革命极光Pro图赏
春节档电影票均价7年来首降:你会选择看哪部电影过年?
一加11独家适配!国产魂Like手游《帕斯卡契约》新增高品质震动
国人不识货?本田思域TYPE R因太畅销在日本暂停接单
全球速读:今年这回 我们总可以对春节档有点期待了吧
热消息:雷军回顾2022年:小米13得到大家认可最开心
育碧喜加一:《雷曼:疯狂兔子》免费领!兔年玩疯兔
世界热门:大摆锤高处停摆近10分钟 游乐场回应:两边游客体重相近所致
焦点快报!新年第一月iPhone已降价2次!苹果14首降超千元 国内用户喊真香抄底
每日视点!印度8岁女孩放弃4亿家产出家 看透世俗享乐:从没看过电视
世界热消息:学习笔记——springMVC中视图及视图解析器对象;视图控制器
当前快讯:撕破脸!暴雪禁止中国玩家参加炉石赛事引众怒 国内玩家地址卸载所有游戏
获得版号后首测!米哈游《崩坏:星穹铁道》三测定档1月24日
环球观速讯丨英首相车内讲话未系安全带遭批 IIHS曾做测试:后排不系结果可怕!
今日要闻!《三体》电视剧更新8集 豆瓣评分增至8.1 网友担忧:原创角色正让抠书式还原走形
荣耀MagicBook V 14可升级MagicOS 7.0:新增键鼠共享功能
数据结构:树状数组 学习笔记
环球观热点:Downie V4.6.4 for Mac 视频下载工具
进海南遭世纪大堵车 3小时挪300米?当地回应:前段时间轮渡停航
每日快讯!奥迪胜诉!蔚来在德国被禁止使用“ES6”、“ES8”等名称
世界快消息!卖8万能成爆款?比亚迪海鸥内饰谍照曝光:看齐大哥海豚
当前观察:担心的事发生了 滑雪游客乘坐缆车时坠落!官方回应
环球新资讯:谁能阻挡!比亚迪双线再“扩军”:产能新增或超百万辆
本故事纯属虚构是什么意思?本故事纯属虚构的下一句是什么?
尺子的刻度是什么意思?尺子的刻度是从几开始的?
社会发展的根本动力是什么?社会发展的源泉是什么?
肌底是什么意思?肌底液是干什么用的?
交通问题有哪些?交通问题反馈打什么电话?
ceb文件怎么打开?ceb文件怎么转换成PDF?
水电煤气费一个月大约多少钱?微信怎么交水电煤气费?
华为荣耀3c多少钱一部?华为荣耀3c手机参数
电脑主机噪音大是什么原因?电脑主机噪音大怎么解决?
投影仪灯泡使用寿命是多久?投影仪灯泡机和激光机哪个好?
忍不了!iPhone用户明确拒绝:苹果仍收集隐私数据 说好的正义呢?
荣耀新专利公布:反向无线充电有望进一步普及
要闻:需花1万1 保时捷为经典车提供最新车机:想用导航需再掏一笔
滚动:跟网易闹掰!暴雪禁止中国玩家参加《炉石传说》赛事
视点!极氪001全国首烧?车主洗了个澡 极氪001路边起火
PowerShell 美化(oh-my-posh)
全球聚焦:截图工具,QQ截图独立版,可以脱离QQ使用的QQ截图小工具,有人把QQ截图功能单独拆出来了,真的很好用!
播报:学习笔记——SpringMVC处理响应数据;SpringMVC处理请求域响应乱码问题
世界观天下!比亚迪海豹获五星安全评价 因太过结实 反而在碰撞测试中被扣了分
天天快报!吴京谈《流浪地球2》:效果震撼到起鸡皮疙瘩
天天视点!特斯拉为何敢打价格战? 分析:单车利润是丰田汽车四倍
卢伟冰:Redmi K60系列越卖越好 霸榜2500-4000元价位段
热点评!0排放 有史以来最大的氢电动飞机首飞:19座、飞了10分钟
SICTF2023 web_wp
环球快看:读函数式编程思维笔记01_演化的语言
【报资讯】印度越南做备胎算了吧!苹果永远离不开中国制造 未来20年中国主宰科技生产
环球热门:近30年来日本男性越长越矮!东京大学研究:我们矮小身高更有利生存
欧盟向TikTok CEO发出通牒:不尽快遵守欧盟法规或被封禁
明晚见!央视《2023年春节联欢晚会》已完成全部五次彩排
Redmi Note 12系列在印度一周卖出30亿卢比 创下销售纪录
要闻速递:岳云鹏主持河南春晚出现“笑场” 网友喊话郭德纲扣工资
2022年出货量暴跌!PC越来越凉了:但CPU、显卡持续涨价
南宁兔子灯被吐槽羊不羊兔不兔火了 表情被网友收藏:“打工人”写照
世界热议:顺丰单票收入是“三通一达”6倍 纠纷不断 寄丢万元iPhone只赔1千
环球实时:暴雪中国:1月24日正式停服 玩家数据安全网易负责
焦点快播:学习笔记——@PathVariable注解基本使用;@PathVariable注解属性;REST风格CRUD概述;实现PUT&DELETE提交方法步骤
环球短讯!Codeforces Round #753 (Div. 3)(ABCDE)
世界热点!node.js安装
天天日报丨超117万人想看!《流浪地球2》预售票房破亿:大年初一上映
天天新资讯:告别LCD+侧边指纹!曝Redmi Note新品拥抱OLED+屏幕指纹
女记者被裁员去海底捞打工:赚钱更多了 不敢告诉家人
世界要闻:憋出大招的电车 可能会剥夺油车最后的尊严
NVIDIA史上最鸡肋、还特长寿的显卡:GeForce MX终于要走了!
全球焦点![数据结构] 栈 (C语言)
【世界速看料】动物园老虎被3只狮子围攻撕咬 官方回应“越界”导致:为何要同区饲养?
吴京谈《流浪地球2》:努力为自己的角色增加光彩
全球热消息:OPPO Find N2成为老外眼中最好的折叠屏手机!三星落后其两代
环球热点!AcWing1081. 度的数量
通讯!DVWA靶场实战(八)——SQL Injection(Blind)
团购低人一等?男子理发耳朵被剪掉一块肉:店方求网友高抬贵手
2025年前后!嫦娥六号将为人类取回月球背面第一批月壤
联想启天M540c/M450c商用机对比评测:酷睿版配置/性能完胜
卡梅隆:在家看《阿凡达2》要有大电视 别在手机上看
当前短讯!对比飞天茅台 花8万块测市面多款白酒:结果不出所料
【新视野】没人买!机械硬盘出货量惨遭腰斩 稳定性/性价比都输SSD
世界观速讯丨深度根植!苹果永远都不能完全离开中国制造
今日热闻!男子疑因抽烟错过高铁跪地求开门:科普正确补救方法
三星Galaxy S23系列美版定价泄露:Ultra版卖8000多元 向苹果看齐
【新视野】联想Tab P11 5G安卓平板将在国内上市:骁龙750G处理器
观速讯丨曾言获10万订单:零跑C01变相降价2.5万
【全球新要闻】韩国电动车基金不重仓特斯拉了!基金经理感叹:坑太多
【全球速看料】dubbo实战篇:dubbo超时设置
头条焦点:RTX 4090 16针电源线又烧了!加强版“躺平”也不行
今亮点!低脂高蛋白 鲨鱼菲特鸡胸肉:5袋到手14.9元
当前热点-安卓碎片化一地鸡毛:发布5个月后 仅5.2%用户升级Android 13
天天关注:大红灯笼挂满街头认不出红绿灯?官方回应:已调整 交通违法误判可撤销
每日讯息!男子网购耐克鞋收到两只左脚 商家拒绝提供售后