Bottle est ce que l'on appelle un micro-framework. Sa légèreté et sa simplicité en font cependant un concurrent sérieux pour le développement d'applications web et de sites Internet de petite taille. Il convient également parfaitement au prototypage en permettant une mise en place et des résultats rapides. Loin d'être distancé, Bottle s'impose comme un framework à ne pas oublier pour les entreprises n'ayant pas besoin de fonctionnalités trop poussées ou ne disposant pas de deadlines extensibles.
Bottle a vu le jour en 2009. À son origine, un étudiant allemand du nom de Marcel Hellkamp qui souhaitait voir où le mèneraient ses connaissances en Python. Après avoir reçu de nombreux retours positifs, il a décidé de pousser le développement plus loin que prévu et a créé le framework que l'on connait aujourd'hui.
Sa réputation vaut à Bottle d'être considéré comme le plus micro des micro-frameworks. Il tient en effet en un seul fichier, ce qui le rend léger et performant grâce à une grande rapidité d'exécution. Facile à déployer, il l'est tout autant à apprendre pour les développeurs habitués de Python. Le manque d'expérience préalable avec Bottle n'est donc pas un frein à son choix pour les programmeurs expérimentés.
S'il n'est pas le framework le plus connu, il n'en est pas moins distribué sous licence MIT. Provenant du célèbre centre de recherche Massachusetts Institute of Technology, cette licence libre et open source a en plus le mérite de permettre aux entreprises utilisant Bottle pour leurs développements de réutiliser et modifier le code qui peut ensuite être à nouveau distribué librement ou utilisé à des fins commerciales.
Bottle est largement apprécié de la communauté pour la facilité à laquelle il peut être personnalisé et étendu à de nouvelles fonctionnalités. En plus, il n'a pas d'autre dépendance que celle à la bibliothèque originale de Python. Les applications développées restent donc aussi légères et portables que possible.
Autre spécificité intéressante, Bottle se constitue d'un fichier unique fonctionnant aussi bien avec Python 2 et Python 3. Il s'agit d'un détail important puisque la compatibilité ascendante a été rompue entre les deux versions. En conséquence, le code écrit avec la version 2 n'est pas compatible avec les versions ultérieures. Quelle que soit la version de Python nécessaire à un développement, cela n'impacte pas l'utilisation faite de Bottle.
Bottle est probablement l'outil le plus simple parmi les principaux frameworks Python. Il permet également une mise-en-place et des résultats rapides. Cela le rend par conséquent parfait pour les entreprises ayant besoin d'un site Internet performant, mais dont le nombre de pages est limité. Bien que léger et minimaliste, Bottle embarque un routeur, des templates et un serveur HTTP. Il est donc suffisamment complet pour développer rapidement et efficacement de petites applications et des sites web simples.
La philosophie derrière Bottle fait qu'il n''embarque pas de fonctionnalités avancées prêtes à être intégrées au développement. On développe en effet avec et non pas pour Bottle. Cela signifie que le code produit ne dépend pas du framework. Il devient alors aisé d'évoluer vers une autre technologie si les besoins augmentent. Pour une petite entreprise, cela laisse place à une grande flexibilité. Pour les projets un peu plus conséquents, Bottle reste intéressant, notamment lors de la phase de prototypage.
Dernier aspect pouvant déterminer un choix en sa faveur, Bottle permet de séparer l'interface de programmation (l'API) en plusieurs parties. Son maintien se fait ainsi plus aisément. Cela rend également la gestion de plusieurs systèmes de gestion de base de données beaucoup plus facile, en permettant à une portion de l'API de se connecter à une base de données SQL (par exemple MySQL) et une autre partie à une base NoSQL comme MongoDB. Il est bien sûr possible de le faire avec d'autres frameworks mais Bottle facilite le processus.