命令行python应用程序和框架

2024-05-13 19:08:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我将用python编写一个相当复杂的命令行应用程序。我想利用一些东西,而不仅仅是纯python,也许是一个框架或者一些能使应用程序中的服务和代码管理更容易的东西。我想在我的脑海中,我在想MVC,因为应用程序将有几个不同的命令(控制器),这些命令(控制器)调用不同的数据源(JSON请求、REST请求等,例如MVC中的“模型”),然后以不同的格式(视图)显示结果。

我认为MVC在这方面很好,但我并不是真的在做一个web应用。我想要的东西不一定需要一个web服务器,但有一个框架的优势,强制一些编码标准。

有人有什么建议吗?我知道我可以用Python从头开始构建一些东西,但我只是好奇是否还有其他东西可以利用。

谢谢, 达斯汀


Tags: 代码命令行模型命令框架视图restweb
2条回答

这有点晚了,但是对于其他偶然发现这一点的人来说:

Cement是一个针对Python的高级CLI应用程序框架。入门很容易,而且它非常灵活,可以定制从日志记录到配置文件解析的几乎所有部分。水泥2(代号波特兰)目前处于测试阶段,但非常接近稳定的版本:

http://cement.readthedocs.org/en/portland/

此外,如果要创建REST命令行客户机,还可以签出dRest:

http://drest.readthedocs.org/en/latest/

它也很容易开始,而且对于从请求处理程序定制发送端和接收端序列化的方式也非常灵活。

我很乐意回答任何有关这两者的问题。

公平地说,MVC并不局限于web应用程序。我认为,由于过去几年网络意识的发展趋势,MVC和web应用程序之间的关系本可以得到发展。换言之,web应用可以使用MVC,但使用MVC并不一定意味着你拥有web应用。

如果你想使用一个框架,你可以尝试使用一个最接近你想要的控制器。我不知道有哪种MVC框架使用命令行作为接口,但是一些使用命令行的独立于平台的GUI框架,例如GTK+QT:它们都有python绑定。

从个人角度来看,我以前使用过Django来实现这个目的。尽管技术纯度可以作为讨论的一个要点,但是在选择框架时,没有人强迫您使用框架的所有组件。Django有一个很好的ORM,我非常喜欢它,所以我把它作为SSH操作接口的后端。这可能有点过头了,但对我来说,我的优势是可以重用我对系统的知识,而不是学习一个新的、一次性使用的框架。

总之,这一切归结为纪律。即使是最好的框架也不能阻止你违反编码标准和偷工减料。。。

PS如果您在Linux上,您可以考虑在命令行前端使用python的curses模块。

相关问题 更多 >