python的客户机-服务器框架

python的客户机-服务器框架,python,frameworks,client-server,Python,Frameworks,Client Server,我目前正在从事一个大学项目,该项目需要使用客户机-服务器模型来实现。 我过去有过在套接字级别管理通信的经验,这真的很糟糕。 我想知道是否有人能推荐一个易于使用的python框架,我可以用它来实现这个目的。 我不知道你需要回答什么样的细节,所以我只简单地描述一下这个项目 通信应该通过HTTP(可能是HTTPS)进行 服务器不需要发回数据或调用客户机上的方法,它只收集数据 许多客户端同时向服务器发送数据,服务器需要区分发送者,相应地处理数据并将结果放入数据库 如果我理解正确,您可以使用python

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

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

如果我理解正确,您可以使用python中的任何web框架。例如,你可以用烧瓶(我用它,我喜欢它)。Django也是python web框架中的一个流行选择。但是,您不应该仅限于这两个方面。那里有很多。只需谷歌就可以了

客户机的实现取决于客户机和服务器之间的通信类型——我这里没有足够的详细信息。我只知道它是单向的

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


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

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

我个人会使用Flask和JWT(JSON Web令牌),这将允许您向每个客户端提供一个令牌,以便与服务器进行身份验证,这也将允许您区分客户端,并且您可以使用HTTPS满足SSL/TLS要求。实现这一点要容易得多,尽管我更喜欢django,因为它能为大家带来什么,但让你在一次任务中学习它可能有些过分

对于使用SSL的Flask,这是一个简单的例子

对于带烧瓶的JWT,是这样的


您可以使用任何您想要的数据库系统。

您应该使用什么网络协议?你能使用HTTP吗?我应该使用HTTPS,但演示不会涉及项目的这一部分,可以是HTTP,我不清楚我的说法。我不是说服务器不能向客户端发送消息,而是说服务器不需要向客户端发送数据。我要编辑我的帖子。谢谢你的建议,我去查查Flask和Django!我看了一下Flask,它似乎是针对web应用程序的。实际上,我需要一个小型python程序(客户端),将从.txt获取的数据发送到另一个python程序(服务器)。@Frank Fox博士,我仍然会使用flask并在兼容WSGI的应用程序服务器上运行它,因为如果您有多个客户端,它将为您处理多个并发请求。然后可以用python编写一个小客户机。正如我已经说过的,您可以使用
请求
包向服务器发送http请求。