【问题标题】:command line python app and frameworks命令行 python 应用程序和框架
【发布时间】:2011-12-06 07:59:24
【问题描述】:

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

我认为 MVC 可以很好地解决这个问题,但我并没有真正做一个网络应用程序。我想要的东西不一定需要 Web 服务器,但具有强制执行某些编码标准的框架的优势。

有没有人有任何提示或建议?我知道我可以使用 Python 从头开始​​构建一些东西,但我只是好奇是否还有其他东西可以利用。

谢谢, 达斯汀

【问题讨论】:

    标签: python frameworks


    【解决方案1】:

    这有点晚了,但是为其他偶然发现此问题的人发帖:

    Cement 是 Python 的高级 CLI 应用程序框架。入门很容易,并且从日志记录到配置文件解析的几乎每一个部分都非常灵活。 Cement2(代号 portland)目前处于测试阶段,但非常接近稳定版本:

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

    此外,如果您正在创建 REST 命令行客户端,还请查看 dRest:

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

    它也很容易上手,并且对于从请求处理程序到发送端和接收端如何进行序列化的自定义也非常灵活。

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

    【讨论】:

    • 除了 DOCS 之外,还有其他关于 CEMENT 的教程吗?它似乎非常适合我正在进行的项目......
    【解决方案2】:

    为了公平起见,MVC 并不绑定到 Web 应用程序。我认为由于过去几年的网络感知趋势,MVC 和网络应用程序之间的这种关系可能会增长。换句话说,Web 应用可以使用 MVC,但使用 MVC 并不一定意味着您拥有 Web 应用。

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

    从个人角度来看,我之前曾为此使用过Django。尽管技术纯度可以成为讨论的焦点,但在选择框架时,没有人会强迫您使用框架的所有组件。 Django 有一个不错的 ORM,我非常喜欢它,因此我将它作为 SSH 操作界面的后端。这可能有点矫枉过正,但对我来说有一个优势,即我可以重复使用我对系统的知识,而不是学习一个新的、曾经使用过的框架。

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

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

    【讨论】:

    猜你喜欢
    • 2018-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    • 1970-01-01
    • 2011-11-04
    相关资源
    最近更新 更多