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
Was ist Prostgresql?
-Sehr performant und läuft im eigenen Proezss
Was ist die Library Click (CLI)?
-Command Line Interface Applications Library für viele Tasks (Resetting DB, Filling DB mit Testdaten)
Was ist die Library Stripe?
-Library um ein Paymentgateway zu integrieren
Was bringt Docker im Projekt?
-Postgres, Redits, Celery, Flask ohne die direkt zu installieren
Beschreibe das MTV-Pattern aus Django!
- Model-Template-View
- Model sind die Datenbank-Modelle
- Template sind die HTML-Templates
- View sind die Routes, die URL Endpoints auf HTTP Responses mappen
Beschreibe das MVC-Pattern aus Flask
-Model-View-Controller
Was sind die Hauptfeatures von Jinja 2?
- Programmsprache in HTML (If, Loops etc)
- Daten von Backend zur HTML Seite bringen
- Trennung von Data und Presentation
- Template Inheritance (Templates erweitern)
- HTML Escaping (XSS-Schutz)
- Sehr schnell
- Sehr flexibel erweiterbar