我一直在研究Python的微框架,并且遇到了两个有趣的选项,Flask和Bottle。每个都有一些类似的功能。我注意到的一件事是所有示例站点都显示位于单个Python文件中的所有应用程序代码。显然,即使是中等规模的网站,也很难快速管理。这些框架中的任何一个(或两个)是否支持在不同文件之间进行分解,如果是这样,将如何实现?
我对Django很熟悉,并且喜欢它的结构更加结构化,但我宁愿使用更轻量级但功能更强大的东西。
我一直在研究Python的微框架,并且遇到了两个有趣的选项,Flask和Bottle。每个都有一些类似的功能。我注意到的一件事是所有示例站点都显示位于单个Python文件中的所有应用程序代码。显然,即使是中等规模的网站,也很难快速管理。这些框架中的任何一个(或两个)是否支持在不同文件之间进行分解,如果是这样,将如何实现?
我对Django很熟悉,并且喜欢它的结构更加结构化,但我宁愿使用更轻量级但功能更强大的东西。
我对瓶子没有任何经验,但看一看 Flask docs 在较大的应用程序我的Flask应用程序都使用多个Flask Module
该页面建议的对象,每个Python模块一个,它似乎工作得很好。
有一件事很不错 Module
对象是您可以在每个对象上自定义调度,以在您的应用程序中创建URL路由“域”。例如,我正试图在我的一些代码中使用Windows应用程序,所以我有一个 CaseInsensitiveModule
这样做不区分大小写的调度,我操纵了一个 RemoteModule
使用Flask / Werkzeug路由系统将HTTP请求转换为Python方法。
(请注意,在目前的Flask版本中, Module
现在是 Blueprint
秒。)
我对瓶子没有任何经验,但看一看 Flask docs 在较大的应用程序我的Flask应用程序都使用多个Flask Module
该页面建议的对象,每个Python模块一个,它似乎工作得很好。
有一件事很不错 Module
对象是您可以在每个对象上自定义调度,以在您的应用程序中创建URL路由“域”。例如,我正试图在我的一些代码中使用Windows应用程序,所以我有一个 CaseInsensitiveModule
这样做不区分大小写的调度,我操纵了一个 RemoteModule
使用Flask / Werkzeug路由系统将HTTP请求转换为Python方法。
(请注意,在目前的Flask版本中, Module
现在是 Blueprint
秒。)
我看不出有什么方法可以 停止 这来自工作。像Django一样,Flask和Bottle只是下面的Python,而Python允许你将文件分解为模块。只要将相关功能导入主脚本,它们就会像在那里定义一样工作。
我知道有些人已开始使用我自己的文章与Flask一起使用,尽管根据项目的大小,显然还有其他方法可以做到这一点。甚至我删除了基于文件的目录类型模块,用于较小的项目。看一下 http://www.cols-code-snippets.co.uk/2011/02/my-take-on-flask-application-skeleton.html
我最近发布了一个关于如何在Google App Engine中开始使用Bottle + Jinja2的教程。我的重点是如何组织项目文件。您可以获得可以使用的东西: http://codeaspoetry.wordpress.com/2011/11/27/how-to-build-a-web-app-using-bottle-with-jinja2-in-google-app-engine/
这真的取决于你想要实现的目标,对于微服务/应用/网站来说,瓶子非常直接且重量轻。如果你计划你的应用程序增长,那么Flask可能是你的好选择,因为它有很多扩展。我们有大约40到50个微型服务写在瓶子里,从未遇到过任何问题。