The big difference is that Flask is based on other technologies such as Werkzeug and Jinja2 that exist for a longer time and it does not try to reinvent things. Bottle on the other hand tries to stick to the one-file approach. I want to merge them but the Bottle developer does not seem to be very happy about the idea of stepping away from the “one file” requirement.
Regarding flexibility: there are no reasons you shouldn't be able to use flask with other template engines if that's what you're after. In fact, things like Flask-Genshi exist: Flask-Genshi and it's incredible easy to use mako with it, even without extension if you want to.
Bias warning: I am the developer of Flask, Werkzeug and Jinja2.
http://stackoverflow.com/questions/4941145/python-flask-vs-b...
In my own experience, both are great, and similar. For a simple REST API bottle has an added advantage of being a single file which is nice to just include with all of your other code rather than having to install anything. Flask, however, is my go-to framework. I used it extensively at a previous job and still do today with my current employer (and the app is pretty substantial). Flask also has a lot of extension support now. A pip freeze | grep Flask yields the following for one project.
Flask==0.9
Flask-Admin==1.0.5
Flask-Assets==0.8
Flask-Babel==0.8
Flask-Cache==0.10.1
Flask-Classy==0.5.2
Flask-DebugToolbar==0.7.1
Flask-Gravatar==0.3.0
Flask-Login==0.1.3
Flask-Principal==0.3.4
Flask-SQLAlchemy==0.16
Flask-WTF==0.8.2