knuspermagier.de
Der privateste Blog von Philipp.

Flask

Gestern Abend wollte ich schnell einen Rezepte-Import in meine Re-Implementierung vom Speiseplaner packen. Ich hatte in den letzten Monaten öfter Github-Repositories gesehen, die sowas anbieten. recipe-scrapers sah ziemlich umfassend aus, ist aber leider in Python geschrieben.

Nun hätte ich sicher Python in mein Docker-Image ziehen können, das alles installieren und per exec drauf zugreifen können, doch ich dachte mir, warum machst du das nicht kurz in sauber und baute eine Flask-App darum. Wobei, bauen kann man das nun wirklich nicht nennen, ich änderte ungefähr eine Zeile aus der Hello World-Beispielapp:

from flask import Flask
from flask import request
from recipe_scrapers import scrape_me

app = Flask(__name__)

@app.route("/")
def hello_world():
    url = request.args.get('url', '')
    scraper = scrape_me(url, wild_mode=True)
    return scraper.to_json()

Dazu diese kurze Dockerfile und fertig ist die Rezepte-Scraping-API.

FROM python:3-alpine

WORKDIR /usr/src/app

COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

COPY app.py ./

CMD [ "flask", "--app", "app", "run", "--host=0.0.0.0"]

Jetzt war es ein leichtes, das Import-Feature in den Speiseplaner zu implementieren, quasi nur noch ein API-Aufruf und fertig. Da freut man sich doch, wie leicht mittlerweile vieles geworden ist.

Kommentare, Feedback und andere Anmerkungen?
Schreib mir eine E-Mail 🤓