哪种轻量级Pythonweb框架支持应用和热部署代码
我习惯了PHP的应用方式。例如,
c:\xampp\htdocs\app1
c:\xampp\htdocs\app2
可以通过以下方式访问
localhost://app1/page.php
localhost://app2/page.php
需要注意的几点:
- 放在www-root目录里的文件夹会直接对应到网址
- 当添加、删除或更改文件/文件夹时,工作进程会自动反映这些变化(新文件会立即生效)。
我在寻找一个成熟的Python网页框架。这个框架是用来做一个网页API的,之后会部署给多个客户,每个客户的版本都会有不同的定制。而且我们的工作流程中,和客户之间会频繁互动和修改。因此,“拖放式”的部署方式是必须的。
哪个Python框架可以实现这个?我更倾向于一个轻量级的解决方案(不想强制使用MVC、ORM等)。
相关链接
4 个回答
CherryPy 是一个成熟的网页框架,当你做了修改后,它会自动重新部署。虽然它没有严格的文件结构和网址规则,但它是一个轻量级的框架,不强制使用 ORM(对象关系映射)、MVC(模型-视图-控制器)或者模板引擎。
我知道的Python没有现成的网络框架可以直接做到这一点,不过如果你需要的话,其实加上去也不难,只要稍微遵循一下“约定优于配置”的原则。
你可以先选择一个你喜欢的Python网络框架,然后写一个包装器,去遍历一个文件夹或一组文件夹,自动注册里面模块的路由。让你的模块在它们的__init__.py
文件里也做同样的事情,去处理和它们在一起的其他文件。接着,只需设置你的WSGI代码,使其在WSGI脚本更新时自动重载,这样在开发过程中,你的部署就变成了两个简单的步骤——添加文件,然后触碰一下dev_app.wsgi
。你甚至可以给这个包装器添加一个“真实”的部署选项,让它遍历一个设置好的开发环境,生成固定的URL到功能的映射,方便部署。
不过,做这些工作其实并不是特别必要。Python和PHP不一样,两者的开发方式并不完全相同。如果客户想要可变的路由,就用动态路由,并给他们(或者你自己)一个管理界面来控制内容和URL的映射。可以用平面文件、SQLite、NoSQL数据库,或者其他方式来存储这些映射和内容。使用像Jinja2、Mako、Cheetah或Genshi这样的模板引擎来维护你的整体布局。把这些都用面向对象的结构包起来,这样扩展起来会更简单(如果你觉得函数式编程更顺手,也可以用那个)。或者,直接放弃生产环境中的动态部分,生成像Jekyll那样的静态HTML文件。