【问题标题】:Make XML code from request data and inserting to database从请求数据生成 XML 代码并插入数据库
【发布时间】:2019-08-06 11:26:56
【问题描述】:

我正在将数据接收到 REST API 中,并且我想将其作为 XML 代码插入到数据库中。当我后来从数据库中读取记录时,我希望 XML 代码格式正确。

data=str(request.data)
cur=mydb.cursor()
currentDT = datetime.datetime.now()
val=data.replace("'","''")
cur.execute("insert into MyXMLApi(dateofInsertion,xmlData) values('%s','%s')"%(str(currentDT),val))
mydb.commit()

这是我期望在数据库中看到的:

"<note>
Don't forget me this weekend!
</note>"

然而,这是我实际得到的:

'b"<note>
Don''t forget me this weekend!
</note>"'

所以我这里有三个问题。

  1. 我必须处理 XML 代码中的单引号。
  2. 它应该存储为正确的 XML 代码。
  3. 当我从数据库中读取时,我无法获得正确的代码。

【问题讨论】:

    标签: mysql python-3.x flask


    【解决方案1】:

    request.data 是 Fl​​ask 中的一个字节串。 (参见docs 中的data 和get_data() 属性。)但是您想将其保存为非字节,只是将纯字符串保存到数据库中。用str() 转换不是办法。

    假设您想要一个 UTF-8 字符串,请将第一行替换为

    data=request.data.decode('UTF-8')
    

    然后你就可以把它保存到你的数据库中了。

    关于单引号,我认为您不应该自己逃避它们。使用parameter binding,图书馆会帮你搞定的。

    (顺便说一句,这听起来像是一个非常奇怪的用例。为什么不将data 作为字段note 存储在您的表中?)

    【讨论】:

      猜你喜欢
      • 2014-10-19
      • 2013-07-15
      • 2020-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-29
      • 2015-12-20
      • 2019-01-02
      相关资源
      最近更新 更多