【问题标题】:Client-Server framework for pythonpython的客户端-服务器框架
【发布时间】:2017-05-15 11:53:01
【问题描述】:

我目前正在处理一个需要使用客户端 - 服务器模型实施的大学项目。 我过去有过在套接字级别管理通信的经验,这真的很糟糕。 我想知道是否有人可以建议一个易于使用的 python 框架,我可以将其用于此目的。 我不知道你可能需要回答什么样的细节,所以我只是简单地描述一下这个项目。

  • 应该通过 HTTP 进行通信,可能是 HTTPS。
  • 服务器不需要发回数据或调用客户端上的方法,它只是收集数据
  • 多个客户端并发向服务器发送数据,服务器需要区分发送者,对数据进行相应处理,并将结果存入数据库。

【问题讨论】:

  • 你应该使用什么网络协议?可以使用 HTTP 吗?
  • 我应该使用 HTTPS 但演示不会涵盖项目的那部分,那么它可以是 HTTP

标签: python frameworks client-server


【解决方案1】:

您可以使用 Flask 或 Django 之类的东西。这两个框架都相当容易实现,Flask 比 Django IMO 容易得多,尽管 Django 有一个您可以使用的内置身份验证层,尽管在您需要的客户端/服务器场景中实现起来更加困难。

我个人会使用 Flask 和 JWT(JSON Web Tokens),这将允许您为每个客户端提供一个令牌以与服务器进行身份验证,这也将让您区分客户端,并且您可以使用 HTTPS 作为您的 SSL /TLS 要求。实现这一点要容易得多,虽然我更喜欢 django 带来的好处,但让你为单个作业学习它可能有点过头了。

对于带有 SSL 的 Flask,here 是一个简短的概述。

对于带有 Flask 的 JWT,here 就是这样。

您可以使用任何您喜欢的数据库系统。

【讨论】:

    【解决方案2】:

    如果我理解正确,您可以在 python 中使用任何 Web 框架。例如,您可以使用 Flask(我使用它并且我喜欢它)。 Django 也是 python web 框架中的流行选择。但是,您不应仅限于这两个。那里有很多。只需谷歌即可。

    客户端的实现取决于客户端和服务器之间的通信方式——我这里没有足够的细节。我只知道它是单向的。

    客户端可以是一个浏览器访问你用 Flask 编写的 Web 应用程序,用户只向服务器发送 POST 请求。但是,即使在这里,通信也是双向的(客户端需要打开页面,这意味着服务器将请求发送回客户端),这违反了您的初始要求。

    然后它可以是用 python 编写的特定客户端,通过 http/https 向您的服务器发送一些特定请求。例如,您的客户端可以使用 requests 包发送 HTTP 请求。

    【讨论】:

    • 我的陈述不清楚。我并不是说服务器不能向客户端发送消息,我的意思是服务器不需要向客户端发送数据。我要编辑我的帖子。谢谢你的建议,我去看看 Flask 和 Django!
    • 我查看了 Flask,它似乎适用于 Web 应用程序。我实际上需要一个小型 python 程序(客户端),它将从 .txt 获取的数据发送到另一个 python 程序(服务器)。
    • @Dr. Frank Fox,我仍然会使用flask 并在兼容WSGI 的应用程序服务器上运行它,因为如果您有多个客户端,它将为您处理多个并发请求。然后就可以用python写一个小客户端了。正如我已经告诉过的,您可以使用 requests 包向您的服务器发送 http 请求。
    猜你喜欢
    • 1970-01-01
    • 2018-12-15
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多