feat(web基础): 新增零基础Web开发课程
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
"""第5-2课标准示例:解析URL并构造HTTP请求信息。"""
|
||||
|
||||
from urllib.parse import parse_qs, urlencode, urlsplit
|
||||
|
||||
|
||||
def parse_url(url: str) -> None:
|
||||
"""拆分URL,并把查询字符串转换成便于使用的字典。"""
|
||||
|
||||
parts = urlsplit(url)
|
||||
query_parameters = parse_qs(parts.query)
|
||||
print(f"协议:{parts.scheme}")
|
||||
print(f"主机:{parts.hostname}")
|
||||
print(f"端口:{parts.port}")
|
||||
print(f"路径:{parts.path}")
|
||||
print(f"查询参数:{query_parameters}")
|
||||
|
||||
|
||||
def build_request_target(path: str, parameters: dict) -> str:
|
||||
"""把路径和查询参数编码成请求目标。"""
|
||||
|
||||
return f"{path}?{urlencode(parameters)}"
|
||||
|
||||
|
||||
def main() -> None:
|
||||
"""展示URL各部分以及一份简化的GET请求。"""
|
||||
|
||||
url = "https://api.example.com:443/books?keyword=Python&page=2"
|
||||
parse_url(url)
|
||||
request_target = build_request_target(
|
||||
"/books",
|
||||
{"keyword": "Python Web", "page": 1},
|
||||
)
|
||||
print(f"请求行:GET {request_target} HTTP/1.1")
|
||||
print("请求头:Accept: application/json")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user