Flask Flashcards
Was ist Flask?
Flask ist ein Microframework für Python basierend auf Werkzeug, Jinja 2.
Werkzeug ist eine Library für was?
Für WSGI (Web Server Gateway Interface), welches ein universelles Interface zwischen Webservern und Webapplikationen ist und ein PEP Standard.
Wie sind die Abstraktionslevels von Flask aufgebaut?
WSGI ganz unten
Darauf aufbauend Werkzeug
Darauf aufbauend Flask
Was ist Jinja 2?
Ein HTML Templating Sprache für Python.
Was sind die Vorteile von Flask?
- Sehr agnostisch gegenüber Datenbank
- Individueller als andere Webframeworks
- Man bastelt etwas mehr selbst
- Große Community
- Minimal und viele Feature-reiche Erweiterungen
Welche Websiten kann man mit Flask bauen?
- Schnell Statische Websiten mit Contact Form und kleinen Erklärungen über das Projekt
- Komplexere Websiten mit Userregistration, Datenbank
- API Back End mit Single Page App JS Front End (API-Libraries)
Wie schlägt sich Flask gegen Djano or Ruby on Rails??
-Flask ist weniger opionated
Was ist das beste Tool/Framework für einen Job?
-Das ist komplett abhängig von der Situation, den Anforderungen und den eigenen Skills
Wo wird Flask in der Wirtschaft genutzt?
- Pinterest (12 Milliarden Rquests pro Tag über Flask)
- Twilio hat die Flask-Restful Library erschaffen
- LinkedIn für interne Tools
- Netflix
- Aribnb
- Patreon
Warum gunicorn anstatt uwsgi (wechseln mit einer Zeile Code möglich)?
- Einfachheit
- Viel Konfigurationsmöglichkeiten
Was ist Celery?
- Background Worker
- Läuft in einem eigenen Prozess
Warum braucht man Background Worker?
- Wenn ein User ein Report anfordert soll er nicht 1 Minute auf die Erstellung warten, sondern ein Background Prozess angestossen werden, welcher es parallel ausführt. So muss der Nutzer nicht warten.
- Außerdem muss gunicorn (ohne Threading) auch weiter Anfragen anderer User abwarten und blockt die ganze Web App.
Wann sollte man Background Wörker wie Celery nutzen?
- Immer wenn man etwas nicht direkt machen kann
- Immer wenn man mit Third-Party Services arbeitet
- Bei Routinearbeiten wie z.B. immer Nachts.
Was ist das Backend für Celery?
Redis
Was ist Redis?
- Ein In-Memory Datastor und läuft in seinem eigenen Prozess.
- Schweizer Taschenmesser, da man es als Cache, Messager, für Pub Subsysteme für Websockets nutzen