Python 诅咒界面
Python curses interface
我已经使用 curses 开发了一个程序,到目前为止一切都很顺利,但我想知道是否有一个好的模式可以将我的程序的不同 views/panels 拆分成可由我的主循环调用的更小的块?
更多信息:
这个程序是一个相当小的自动化程序 tool/wizard 旨在为需要本地安装的客户简化我们的应用程序。
此向导分为 3 个步骤,用于根据所选架构从我们的客户安装需求中获取信息。
第一步是要求客户向我们提供其身份信息,例如合同号、公司名称、许可证号和首选联系人。
第二步是要求客户向我们提供有关他想要独立安装(一体化安装)或 N 层安装的信息以及所需的信息,例如请求的自定义 SSL VHostName 或层 IP/Credentials.
第三步也是最后一步是向客户显示所需服务 (MySQL/HTTPd/HAProxy/PHP-FPM) 和我们的应用程序的进度条和信息。
我知道我并不是特别需要为这样的程序使用 curses 库,但我们的用户体验团队要求它,因为它是我们解决方案的客户体验的一部分。
您可以查看 Forms library. 它是 ncurses 的一个很好的扩展,可以让您更好地管理像您这样的输入表单。它提供了一个简单的函数接口来读取字段、更改它们的属性等,以及许多不同的字段类型(包括正则表达式验证的字段)。在你的情况下,你可以简单地创建三个表单,然后 post/unpost 它们连续。
因为这种做事方式并不常见,所以不要指望有任何可用的框架(例如可用于 WebUI 的框架)。
我决定创建自己的 "Framework/factory",以便能够按照与 Web 应用程序使用的逻辑类似的逻辑拆分我的应用程序的各个方面。
源代码很脏而且确实不是 pythonic,但到目前为止它运行良好并且很容易维护。
感谢大家的回答和想法。
我已经使用 curses 开发了一个程序,到目前为止一切都很顺利,但我想知道是否有一个好的模式可以将我的程序的不同 views/panels 拆分成可由我的主循环调用的更小的块?
更多信息:
这个程序是一个相当小的自动化程序 tool/wizard 旨在为需要本地安装的客户简化我们的应用程序。
此向导分为 3 个步骤,用于根据所选架构从我们的客户安装需求中获取信息。
第一步是要求客户向我们提供其身份信息,例如合同号、公司名称、许可证号和首选联系人。
第二步是要求客户向我们提供有关他想要独立安装(一体化安装)或 N 层安装的信息以及所需的信息,例如请求的自定义 SSL VHostName 或层 IP/Credentials.
第三步也是最后一步是向客户显示所需服务 (MySQL/HTTPd/HAProxy/PHP-FPM) 和我们的应用程序的进度条和信息。
我知道我并不是特别需要为这样的程序使用 curses 库,但我们的用户体验团队要求它,因为它是我们解决方案的客户体验的一部分。
您可以查看 Forms library. 它是 ncurses 的一个很好的扩展,可以让您更好地管理像您这样的输入表单。它提供了一个简单的函数接口来读取字段、更改它们的属性等,以及许多不同的字段类型(包括正则表达式验证的字段)。在你的情况下,你可以简单地创建三个表单,然后 post/unpost 它们连续。
因为这种做事方式并不常见,所以不要指望有任何可用的框架(例如可用于 WebUI 的框架)。
我决定创建自己的 "Framework/factory",以便能够按照与 Web 应用程序使用的逻辑类似的逻辑拆分我的应用程序的各个方面。
源代码很脏而且确实不是 pythonic,但到目前为止它运行良好并且很容易维护。
感谢大家的回答和想法。