问题 Flask / Bottle项目组织


我一直在研究Python的微框架,并且遇到了两个有趣的选项,Flask和Bottle。每个都有一些类似的功能。我注意到的一件事是所有示例站点都显示位于单个Python文件中的所有应用程序代码。显然,即使是中等规模的网站,也很难快速管理。这些框架中的任何一个(或两个)是否支持在不同文件之间进行分解,如果是这样,将如何实现?

我对Django很熟悉,并且喜欢它的结构更加结构化,但我宁愿使用更轻量级但功能更强大的东西。


6201
2018-03-21 17:17


起源



答案:


我对瓶子没有任何经验,但看一看 Flask docs 在较大的应用程序我的Flask应用程序都使用多个Flask Module 该页面建议的对象,每个Python模块一个,它似乎工作得很好。

有一件事很不错 Module 对象是您可以在每个对象上自定义调度,以在您的应用程序中创建URL路由“域”。例如,我正试图在我的一些代码中使用Windows应用程序,所以我有一个 CaseInsensitiveModule 这样做不区分大小写的调度,我操纵了一个 RemoteModule 使用Flask / Werkzeug路由系统将HTTP请求转换为Python方法。

(请注意,在目前的Flask版本中, Module现在是 Blueprint秒。)


9
2018-03-21 18:32



哈,你更快地提到烧瓶的文档:-)所以我只是在这里添加我的示例链接更复杂的烧瓶应用程序: bitbucket.org/leafstorm/ryshcate/src/c828fd08ad24/ryshcate - arie
谢谢,不幸的是我的应用程序不是开源的。 - Nicholas Riley
这看起来像是我想知道的,谢谢。 - Jason Miesionczek
@arie:谢谢您发布您的项目,我可能会在那里学到一两件事:) - Jason Miesionczek
哦,这不是我的:-)这只是我在上一次烧瓶/ couchdb项目中吸取了很多灵感的项目。 - arie


答案:


我对瓶子没有任何经验,但看一看 Flask docs 在较大的应用程序我的Flask应用程序都使用多个Flask Module 该页面建议的对象,每个Python模块一个,它似乎工作得很好。

有一件事很不错 Module 对象是您可以在每个对象上自定义调度,以在您的应用程序中创建URL路由“域”。例如,我正试图在我的一些代码中使用Windows应用程序,所以我有一个 CaseInsensitiveModule 这样做不区分大小写的调度,我操纵了一个 RemoteModule 使用Flask / Werkzeug路由系统将HTTP请求转换为Python方法。

(请注意,在目前的Flask版本中, Module现在是 Blueprint秒。)


9
2018-03-21 18:32



哈,你更快地提到烧瓶的文档:-)所以我只是在这里添加我的示例链接更复杂的烧瓶应用程序: bitbucket.org/leafstorm/ryshcate/src/c828fd08ad24/ryshcate - arie
谢谢,不幸的是我的应用程序不是开源的。 - Nicholas Riley
这看起来像是我想知道的,谢谢。 - Jason Miesionczek
@arie:谢谢您发布您的项目,我可能会在那里学到一两件事:) - Jason Miesionczek
哦,这不是我的:-)这只是我在上一次烧瓶/ couchdb项目中吸取了很多灵感的项目。 - arie


我看不出有什么方法可以 停止 这来自工作。像Django一样,Flask和Bottle只是下面的Python,而Python允许你将文件分解为模块。只要将相关功能导入主脚本,它们就会像在那里定义一样工作。


2
2018-03-21 18:23





我知道有些人已开始使用我自己的文章与Flask一起使用,尽管根据项目的大小,显然还有其他方法可以做到这一点。甚至我删除了基于文件的目录类型模块,用于较小的项目。看一下 http://www.cols-code-snippets.co.uk/2011/02/my-take-on-flask-application-skeleton.html


1
2018-03-22 12:26



那里很好,很棒的东西:) - Jason Miesionczek
链接坏了...... :( - dodgethesteamroller


我最近发布了一个关于如何在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/


1
2017-10-27 10:10



链接坏了...... :( - dodgethesteamroller
链接已更新... - joemar.ct


这真的取决于你想要实现的目标,对于微服务/应用/网站来说,瓶子非常直接且重量轻。如果你计划你的应用程序增长,那么Flask可能是你的好选择,因为它有很多扩展。我们有大约40到50个微型服务写在瓶子里,从未遇到过任何问题。


0
2017-09-24 20:46