【发布时间】:2017-05-25 01:21:24
【问题描述】:
说我有这样一个名为hotel的SQL表如下:
id numOfRoom
1 30
2 20
3 40
我正在使用 Python 构建一个 Web 服务器,因此我使用一些接口来获取我的数据库。
query = 'select * from hotel where id = 1'
// connect db
result = cursor.fetchone()
现在result 的类型是字典,所以我可以这样做:
print(result['id']) # 1
print(result['numOfRoom']) #30
在我的项目中,我需要生成一个 JSON 并将其发送到前端:
{
"id":result['id'],
"numOfRoom":result['numOfRoom']
}
但是,在这种情况下,前端无法获取正确的密钥,因为numOfRoom 对用户来说不是正确的。对于用户来说,他们需要获得number of rooms 之类的信息。
所以,我重新生成了一个 JSON:
{
"id":result['id'],
"number of rooms":result['numOfRoom']
}
现在前端可以简单地显示key:value 并且用户很高兴。
但我认为这不是一个好主意。因为如果我更新我的 sql 表,我就会接触到我的后端代码。是否可以为 SQL 中的列创建别名并立即获取它们,以便我可以编写如下代码生成 JSON:
myjson = generateEmptyJson()
foreach val in result:
myjson.append("val.getAlias()":"val.getValue()")
【问题讨论】:
-
您将拥有的是数据和表示的分离。那是一件好事。仅仅将数据库的内容暴露给用户是最糟糕的做法。此外,JSON 仍然不是向用户显示的格式。在很多地方,您必须为数据库之外的数据打上适当的标签。
标签: python sql-server json