duzhuo's-blog

学无止境

为什么使用UUID

UUID (Universally Unique Identifier) 作为主键在数据库中有几个显著优势,特别是在 SQLite 中使用 BLOB 类型存储时:

UUID 的主要优势

  1. 全局唯一性
    • 几乎可以保证在不同时间、不同机器上生成的ID都是唯一的
    • 避免了分布式系统中的ID冲突问题
  2. 安全性
    • 比自增整数更难猜测,减少信息泄露风险
    • 适用于需要隐藏数据规模的场景
    阅读全文 »

Python中可能已经有很多类似模板字符串的东西,但都和 PEP 750 中的 string.templatelib 不一样

比如:string.Templatestring.Formatter/str.format()f-string%这种上古写法。

PEP 750中提到的Motivation中指出f-string的语法虽然方便,但经常会因为操作者处理SQL语句或者HTML文档时直接拼接导致出现安全漏洞。
(实话说这里确实挺抽象的。f-string没有任何问题,问题出在程序员没有对输入的内容进行预处理而直接拼接。)

>>> name = 'duzhuo'
>>> template = t'Hello,{name}'
>>> template
Template(strings=('Hello,', ''), interpolations=(Interpolation('duzhuo', 'name', None, ''),))
阅读全文 »

关于 column

在Linux中查看数据文本时总会出现可读性低的问题(比如 /etc/passwd),本文将介绍一个非常实用的工具叫做 column,它可以帮助我们将文本数据以整齐的列格式输出。

column 命令来自包含大量工具的软件包 util-linux,其中的工具涵盖了系统管理、文件操作以及硬件监控多个方面。

阅读全文 »

以下内容来自于科技爱好者周刊(第 327 期):没有链接的互联网

没有链接的互联网

你能想象吗,没有链接的互联网是什么样?

不用想了,这正在变成现实。

2017年,脸书(Facebook)出台了一项政策:只要帖子里面有(外部)链接,就会减少这个帖子的曝光。

也就是说,只要你贴了链接,别人就(几乎)看不见你的帖子了。这样做是为了防止用户跳出脸书,也为了防止用户为其他网站引流。

所以,你现在访问脸书,就会看到一种奇特的做法:大家发帖都没有链接,有些帖子甚至只是一句话的图片(下图),真正的链接放在帖子的置顶评论里面。

后来,其他的互联网平台纷纷跟进,限制链接。

阅读全文 »

CORS(跨源资源共享)?

以下内容引用自 mdn web docs

跨源资源共享CORS,或通俗地译为跨域资源共享)是一种基于 HTTP 头的机制,该机制通过允许服务器标示除了它自己以外的其他(域、协议或端口),使得浏览器允许这些源访问加载自己的资源。跨源资源共享还通过一种机制来检查服务器是否会允许要发送的真实请求,该机制通过浏览器发起一个到服务器托管的跨源资源的“预检”请求。在预检中,浏览器发送的头中标示有 HTTP 方法和真实请求中会用到的头。

举例:在 http://localhost:8000 的网页上使用 fetch()https://sm.ms/api/v2/ 这个图床的api接口发送请求即会产生CORS问题。

阅读全文 »

分页?

  • 显著提高查询速度,每次只处理一小部分数据减少了数据库的负担。
  • 简化数据展示,能让用户方便地浏览和查找所需信息。

用户界面展示

使用 HTTP GET 方法来获取分页的数据,其中page为数据页索引size为数据页大小:

/products?page={page}&size={size}

以表 products 为例

其中返回的数据的应该包含:全部商品数量,总页数,当前是第几页,当前页的全部产品数据。

服务端与数据库交互逻辑

代码片段以 express + MongoDB 为例:

  • 服务端提取出 query 中的page和size
阅读全文 »
0%