Ombyggnad 2026/2027 pågår - döda länkar förekommer. Mer information

Bottle är förmodligen mer lämpligt än Flask, och skillnaden är liten

2026-05-16 på Anders Ytterströms webblogg

Äntligen har jag tagit reda på skillnaden mellan Bottle och Flask, de två snarlikt namngivna microramverken för webb-backends i Python.

TL;DR: Flask är en kopia av Bottle, med fler beroenden. För de som villhöver köra "allt i en fil"-angripsmetoden - välj Bottle; För de som vet att en Python-fil inte kommer hålla i längden - välj Flask.

För den som vill fördjupa sig, rekommendar jag följande källor:

Bottle är mer trogen det löfte som Sinatra en gång lovade att hålla - att ifrån en fil kunna skapa något användbart.

Jag har själv hela tiden trott att Flask är minimalistiskt nog, men det är snarare så att Flask är lagom-versionen som ligger mellan Bottle i ena änden och Django i den andra änden.

Det är inte heller bara på namnen som Flask och Bottle är lika. Det ses allra tydligast i kod.

Hur lika är de?

Kodexempel för Bottle:

from bottle import route, run, template

@route('/hello/<name>')
def index(name):
    return template(
      '<b>Hello {{name}}</b>!',
      name=name
    )

run(host='localhost', port=8080)

Kodexempel för motsvarande i Flask:

from flask import Flask, render_template_string

app = Flask(__name__)

@app.route("/hello/<name>")
def index(name):
    return render_template_string(
      "<b>Hello, {{ name }}!</b>",
      name=name
    )

Otroligt lika, enligt mig.

Använd Bottle mer!

Då Bottle inte kräver dependencies är det nog faktiskt vad jag kommer att använda mer från och med nu. placeany skulle t ex må bra av att vara Bottle istället, då den kodbasen aldrig kommer att utnyttja Flasks fulla potential.

Jag har även en del andra privata grejor som kör Tornado, som jag primärt valde eftersom Tornado inte kräver beroenden. Jag hade istället kunna välja Bottle och spara tid genom att inte behöva lära mig ett nytt API.


Ovanstående inlägg publicerades 2026-05-16. Det går att prenumerera på denna webblogg. Härifrån är följande mål rekommenderade: