app.add_url_rule('/endpoint', view_func=views.my_func, methods=['GET', 'POST'])Saner routing for growing Flask applications
11–20 of 21 posts
Re: Saner routing for growing Flask applications
#12I really like Flask, but Flask's entire point is that it's a thin, user-friendly wrapper around Werkzeug. Werkzeug isn't my favorite low-level web framework for Python (that'd be WebOb), but the fact that it is trivial to dive into Werkzeug from Flask is Flask's killer feature: its whole raison d'être is that you can smoothly and cleanly replace Flask with your own application-specific Werkzeug middleware as you grow big.
So I guess the only thing that surprises me somewhat here is that the author has approached this as a way of scaling Flask up, rather than providing a clean way of moving Flask out in a way that eases transition to pure Werkzeug. I know that Flask has gradually been growing in some ways via its extensions, and maybe that is indeed its future. But I still think that Flask is best used as the training wheels to get a small app up quickly, and that gradually removing it as you grow is likely the best course of action. Otherwise, I think you'd likely be much better off using a framework like Django, with all the bells and whistles you need for any normal CRUD app, rather than rolling it all yourself in Flask in the first place.
Re: Saner routing for growing Flask applications
#13I've built and maintain several python webapps including both django and flask apps. The routing in flask is the main reason I don't start large projects in flask. This package looks good, I'll certainly be giving it a try.
Are you aware of Blueprints?
Re: Saner routing for growing Flask applications
#14As others have mentioned though, this is very similar to app.add_url_rule. Could you explain how this differs?
Re: Saner routing for growing Flask applications
#15I'm not clear what Blueprints aren't providing here that the author needs, but aside from that, a slightly bigger point: I really like Flask, but Flask's entire point is that it's a thin, user-friendly wrapper around Werkzeug. Werkzeug isn't my favorite low-level web framework for Python (that'd be WebOb), but the fact that it is trivial to dive into Werkzeug from Flask is Flask's killer feature: its whole raison d'ê…
Re: Saner routing for growing Flask applications
#16Earlier quoted context omitted.
Are you aware of Blueprints?
Correct. I built a fairly big api in flask, and managed to get everything properly isolated using blueprints. Nothing to worry on that side for me.
Re: Saner routing for growing Flask applications
#17I've built and maintain several python webapps including both django and flask apps. The routing in flask is the main reason I don't start large projects in flask. This package looks good, I'll certainly be giving it a try.
Re: Saner routing for growing Flask applications
#18Am I the only one who thinks that routes should be defined near views, just like default Flask does?
Re: Saner routing for growing Flask applications
#19Am I the only one who thinks that routes should be defined near views, just like default Flask does?
Re: Saner routing for growing Flask applications
#20I've built and maintain several python webapps including both django and flask apps. The routing in flask is the main reason I don't start large projects in flask. This package looks good, I'll certainly be giving it a try.
What problem occurs as an application grows? I've used both Flask and Django, but have never built a large enough project to have problems with routing.