什么是与远程服务器通信并允许用户通过 Web 浏览器(即输入命令的文本框,和用于输出的文本区域,或各种无命令的抽象接口(interface))?
我已经完成了用于通信和工作的“独立”python 代码(现在基于终端/控制台)。我主要关心的是重构代码以适应网络,这涉及建立连接(python 套接字),并在用户登录时保持连接。
一些进一步的细节:
- 目前使用 django 框架作为基本后端/模板。
最佳答案
可能最有效的方法是像 fmsf 所说的那样设置 REST。通常,每个命令都会对应一个附加了其他变量的 URL:
http://example.com/nuclear_warhead/activate/1
http://example.com/nuclear_warhead/activate/2
http://example.com/nuclear_warhead/activate/3
http://example.com/nuclear_warhead/position/1/AtlanticOcean
http://example.com/nuclear_warhead/position/2/NorthPole
http://example.com/nuclear_warhead/position/3/Moon
http://example.com/nuclear_warhead/launch/1
http://example.com/nuclear_warhead/launch/2
http://example.com/nuclear_warhead/launch/3
您可以将这些作为客户端操作(他们单击链接或提交表单)或作为 Ajax 调用。对于 Ajax 调用,他们填写一个复杂的表单,该表单将其格式化为可接受的 URL 和附加数据,并将其发送到服务器。一旦服务器处理完命令,它就会返回一个结果(通常是 XML 或 JSON 格式),该结果由浏览器解析并显示在页面上。
在完整的 RESTful 应用程序中,您将使用 POST、GET、PUT 和 DELETE 等不同的 HTTP 方法来处理记录
http://example.com/secret_document/1 [POST]
— 创建文件
http://example.com/secret_document/1 [PUT]
— 更新文件
http://example.com/secret_document/1 [GET]
— 检索文档
http://example.com/secret_document/1 [DELETE]
— 删除文档
但是,并非所有浏览器都支持所有 HTTP 方法。
在实现方面,Django 是一种选择,但对于您正在寻找的东西来说有点重量级。你可能想看看 this article其中完整描述了如何设置轻量级应用程序来响应 Web 客户端请求。您绝对可以扩展它以添加更多功能。
关于javascript - python 交互式网络数据/表单/接口(interface)与远程服务器通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2647685/