What is Flask?
Flask is a microframework for Python based on Werkzeug, Jinja 2 and good intentions. And before you ask: It’s BSD licensed!
“Micro” does not mean that your whole web application has to fit into a single Python file (although it certainly can), nor does it mean that Flask is lacking in functionality. The “micro” in microframework means Flask aims to keep the core simple but extensible. Flask won’t make many decisions for you, such as what database to use. Those decisions that it does make, such as what templating engine to use, are easy to change. Everything else is up to you, so that Flask can be everything you need and nothing you don’t.
By default, Flask does not include a database abstraction layer, form validation or anything else where different libraries already exist that can handle that. Instead, Flask supports extensions to add such functionality to your application as if it was implemented in Flask itself. Numerous extensions provide database integration, form validation, upload handling, various open authentication technologies, and more. Flask may be “micro”, but it’s ready for production use on a variety of needs.
So, Flak is basically a web microframework.
Desktop app building on Flask?
I started my python web life with Flask. After learning it, I wanted to make a desktop app on Python. WOW! I could build it on the top of Flask with **WebUI **and PyFladesk.
- WebUI**: **WebUI is a Python module that allows you to convert Flask apps into cross platform desktop apps with three lines of code. It is built on the top of QtWebKit using another great Python project Pyside.
- PyFladesk**: **You can create desktop application by using Flask and QtWebKit.
What about building API on Flask?
It gives you properly content negotiated responses and smart request parsing.
It is currently a work in progress, but the fundamentals are in place and you can already start building kick-ass browsable Web APIs with it. If you want to start using Flask API right now go ahead and do so, but be sure to follow the release notes of new versions carefully.
That’s all. Hope you have got a clearer idea now. Try everything, work with what you like most.
N.B.: This post is just a editorial post, information has been copied from many sources. So, don’t take it as my unique post. I have just answered this on Quora.Com.