esp32 micropython-url 查询字符串解析器

查询字符串

查询字符串(URL参数)是指在URL的末尾加上用于向服务器发送信息的字符串(变量)。将“”放在URL的末尾,然后再加上“参数=值”,想加上多个参数的话,使用“&”。以这个形式,可以将想要发送给服务器的数据添加到URL中。

例如,假设基本URL为“https://○△×□.cn /”,则在基本URL中添加查询字符串(URL参数)为“https://○△×□.cn /“?●=▲×■&○=△×□”。

以上URL中“?●=▲×■&○=△×□”的部分是查询字符串(URL参数)。

购物网站和博客网站等吸引用户的方法有各种各样。其中,“查询字符串(URL参数)”作为了解用户从哪里来的有效方法被广为流传。因为设定URL参数,可以更明确地分析用户访问来源,对Web网站的推广非常有用。也就是在前端中用的比较多。

  • 安装uPyCraft IDE

代码

建立函数

def qs_parse(qs):
## Function code

建立空字典

映射查询字符串的“参数 = 值”结构

parameters = {}

隔离

隔离每个参数值对使用字符串split方法,将用作分隔符的字符串作为输入参数,并返回由分隔符分割的子字符串列表。分隔符不包含在结果中。

需要使用包含查询参数的字符串变量。在这个示例中,该字符串是qs_parse函数的输入参数,我们称之为qs

ampersandSplit = qs.split("&")

迭代处理

列表元素进行逐个迭代处理

for element in ampersandSplit:
#iteration code

使用“=”字符作为分隔符进一步分割字符串。

equalSplit = element.split("=")

输出结果将始终是一个具有两个位置的列表
第一个位置是参数的名称(它是分隔符字符左侧的子字符串),
第二个位置是其值(它是分隔符字符右侧的子字符串)。
需将结果列表的第一个元素映射到字典的键(key),将第二个元素映射到字典的值(value)。

parameters[equalSplit[0]] = equalSplit[1]

在代码的最后,我们将返回字典,它存储在parameters变量中。

def qs_parse(qs):
  parameters = {}
  ampersandSplit = qs.split("&")
  for element in ampersandSplit:
    equalSplit = element.split("=")
    parameters[equalSplit[0]] = equalSplit[1]
  return parameters

测试代码

若要测试代码,只需将其上传到ESP32上即可。
调用文件qs_parse,因此需要将其作为模块导入,以便能够使用已开发的函数。

import qs_parse
stringToParse = "param1=val1¶m2=val2¶m3=val3"
parameters = qs_parse.qs_parse(stringToParse)
print(parameters)

借用此结果图
在这里插入图片描述
可以看出,输出的字典由与URL参数匹配的Key(键)和Value(值)组成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章