Any attempts to replace it for Django would have an uphill struggle for that reason alone.
This is one side-effect of an opinionated framework - the provision of a default choice facilitates cooperation and prevents fragmentation.
(We recently picked up a Pyramid project and I was rather surprised how big the impact was of the extra choice. Simply in terms of searching for answers to questions - we often had to find an answer from someone who was using the same combination of parts that we were using. And figuring out how to do x often fell into the gaps in the docs between two components and was therefore harder to figure out)
The awesome thing about Flask is you really only need to use what you need to use.
Flask also has really great support/docs/etc. I haven't had to google much to find answers to even the more obscure (use xyz supporting library) questions.
Not to be a Flask fanboy... Django definitely has its place. Flask works well for me.
Sigh... bootstrap didn't get where it is by looking unprofessional.
I also don't understand wanting every admin interface one comes across to be a special snowflake, the opposite of what should be the case. We've known for at least 30 years (Apple HIG) that a standardized look and feel is a benefit to users, not a detriment. Not to mention dev maintainability.
I suppose billable hours decrease when reinventing the wheel is no longer necessary.
Personally, I think that Bootstrap interface is good enough, but its widespread adoption lead to the perception I mentioned above.
Personally, an end-user has never asked me to make their software/web-admin look unique. A portfolio site? Sure, but an admin page? Not other than their official color/logo in the header.
Uniqueness is just not a concern with "normal" people, and with good reason as I mentioned above. Still, congrats on the nice work on the site/post.
Are Django or Flask unprofessional since they are widespread?
Flask-Admin is a batteries-included, simple-to-use Flask extension that lets you add admin interfaces to Flask applications. It is inspired by the django-admin package, but implemented in such a way that the developer has total control of the look, feel and functionality of the resulting application.
For anyone interested in how an ORM could be implemented, check it out: https://github.com/coleifer/peewee/blob/master/peewee.py
When I'm investigating an out of the box admin interface I'm _less concerned_ about how they handle CRUD; that's the easy part. Really I need to know how they handle things that go well beyond their stack.
For example, in one application we need to create events for people (like google calendar). You need to be able to search for people, show the system what they already have assigned at that time and allow you to choose times that are best for everyone in the list. This has been designed as a multi-step wizard and it works great but it was a ton of custom code. Looking at the online documentation of flask I'm not sure how I would go about integrating something like this.
There is a large number of fairly clean well-documented extension points in the Django admin. You can override forms, templates, widgets, entire pages, querysets, search logic etc etc.
In the same way that the answer to questions about Django are often answered by "You're over-thinking it. It's just Python" - many questions about the Django admin can be answered by "You're over-thinking it. It's just Django"
Unlike fullstack frameworks, Flask being a minimalistic framework, needs very little changes to the core, as long as the extensions fill in the gaps.
But still the new commits to the core need to be packaged and released as stable features/fixes. Hope Armin and new maintainers understand importance of releases.
Anyway, great framework.
Flask-AppBuilder API is not compatible with vanilla Flask-Admin APIs, so you won't be able to exchange components between them. And sure, you can build something similar to Flask-AppBuilder on top of Flask-Admin without changing its core. Or maybe someone already built it (like Flask app skeleton with built-in administrative interface).
I explained reasoning behind default Bootstrap skin and lack of built-in user management in the blog post.
I have nothing against forks, it is good to have multiple options to choose from.
For this I'm prioritising development speed over just about anything else, and I'm comfortable in most mainstream languages.
Can anyone explain how Flask and Tornado could be used together?
For Campus Bubble, tornado app is a relatively simple push broker. Whenever something happens, Flask app pushes notification to a broker and broker pushes them in fan-out fashion to subscribers.
I even wrote another blog post a while ago about possible approach: http://mrjoes.github.io/2013/06/21/python-realtime.html
Goes a long way in keeping the application modular and maintainable.
The interplay between ORM, migrations, admin, CRUD, API, Forms, etc is just beautiful. Doing that with SQLAlchemy and the like is possible, but may create a bigger mess than starting out with a slightly less lightweight Django. project.