URL连接#

URL特殊字符转义#

在构建数据库连接字符串时,URL中的某些字符具有特殊含义,如果它们出现在用户名或密码中,则需要被转义。以下是需要转义的字符及其对应的URL编码:

  • 空格:%20
  • !:%21
  • ":%22
  • #:%23
  • $:%24
  • %:%25
  • &:%26
  • ':%27
  • (:%28
  • ):%29
  • *:%2A
  • +:%2B
  • ,:%2C
  • /:%2F
  • ::%3A
  • ;:%3B
  • <:%3C
  • =:%3D
  • >:%3E
  • ?:%3F
  • @:%40
  • [:%5B
  • \:%5C
  • ]:%5D
  • ^:%5E
  • _:%5F
  • `(空格):%60
  • {:%7B
  • |:%7C
  • }:%7D
  • ~:%7E

示例#

假设密码是 hihi#wav12391176393,其中包含特殊字符 #,我们需要将其转义。

from urllib.parse import quote_plus

password = "hihi#wav12391176393"
encoded_password = quote_plus(password)

URL = f'mysql://root:{encoded_password}@127.0.0.1:3306/installer'