如何使用Flask提供除文件以外的内容?

时间:2017-07-06 08:49:40

标签: python python-2.7 python-3.x http flask

这个任务可能看起来有点愚蠢,因为我只是开始掌握HTTP。据我所知,HTTP是一种通信协议,这意味着2台计算机可以使用它进行通信。然而,在互联网上,似乎所有HTTP服务器都在提供文件。我可以制作一个不提供文件但只通过HTTP与客户端通信的烧瓶服务器吗?

1 个答案:

答案 0 :(得分:1)

  

我可以制作一个不提供文件但只通过HTTP与客户端通信的烧录服务器吗?

我的理解是,当您在“正常”Web请求中收到“文件”时,实际发生的是您正在接收HTTP响应(类似于文本文件),并且该HTTP响应包含状态代码(这似乎是您认为的真正的 HTTP),“内容”部分包含“文件”的文本,HTTP响应中还有另一行指定如何接收方计算机应该解释该“内容”部分的内容(例如,JSON,明文,HTML或XML等)。该行通常看起来像Content-Type: text/html

在您的情况下,您只需指定状态代码,同时将内容部分留空。

由于您没有发送任何内容,您可能会认为您希望在HTTP响应中指定“空”内容类型,但there doesn't seem to be a 'null' content type。然而,您设置内容类型并不重要,因为您不会填写任何内容。我看到的一件事是将其设置为text/plainapplication/json

如果要将结构化数据发送给用户,通常的方法是将其作为JSON发送。因此,您可以将Content-Type指定为application/json,然后将响应的正文(“内容”)格式化为JSON

以下是Flask代码的示例:

@app.route('/get_current_user')
def get_current_user():
    return jsonify(
        username=g.user.username,
        email=g.user.email,
        id=g.user.id
    )

来源:Return JSON response from Flask view