Flask Flashcards

1
Q

Was ist Flask?

A

Flask ist ein Microframework für Python basierend auf Werkzeug, Jinja 2.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Werkzeug ist eine Library für was?

A

Für WSGI (Web Server Gateway Interface), welches ein universelles Interface zwischen Webservern und Webapplikationen ist und ein PEP Standard.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Wie sind die Abstraktionslevels von Flask aufgebaut?

A

WSGI ganz unten
Darauf aufbauend Werkzeug
Darauf aufbauend Flask

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was ist Jinja 2?

A

Ein HTML Templating Sprache für Python.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was sind die Vorteile von Flask?

A
  • Sehr agnostisch gegenüber Datenbank
  • Individueller als andere Webframeworks
  • Man bastelt etwas mehr selbst
  • Große Community
  • Minimal und viele Feature-reiche Erweiterungen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Welche Websiten kann man mit Flask bauen?

A
  • 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)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Wie schlägt sich Flask gegen Djano or Ruby on Rails??

A

-Flask ist weniger opionated

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was ist das beste Tool/Framework für einen Job?

A

-Das ist komplett abhängig von der Situation, den Anforderungen und den eigenen Skills

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wo wird Flask in der Wirtschaft genutzt?

A
  • Pinterest (12 Milliarden Rquests pro Tag über Flask)
  • Twilio hat die Flask-Restful Library erschaffen
  • LinkedIn für interne Tools
  • Netflix
  • Aribnb
  • Reddit
  • Patreon
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Warum gunicorn anstatt uwsgi (wechseln mit einer Zeile Code möglich)?

A
  • Einfachheit

- Viel Konfigurationsmöglichkeiten

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Was ist Celery?

A
  • Background Worker

- Läuft in einem eigenen Prozess

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Warum braucht man Background Worker?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Wann sollte man Background Wörker wie Celery nutzen?

A
  • Immer wenn man etwas nicht direkt machen kann
  • Immer wenn man mit Third-Party Services arbeitet
  • Bei Routinearbeiten wie z.B. immer Nachts.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was ist das Backend für Celery?

A

Redis

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Was ist Redis?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was ist Prostgresql?

A

-Sehr performant und läuft im eigenen Proezss

17
Q

Was ist die Library Click (CLI)?

A

-Command Line Interface Applications Library für viele Tasks (Resetting DB, Filling DB mit Testdaten)

18
Q

Was ist die Library Stripe?

A

-Library um ein Paymentgateway zu integrieren

19
Q

Was bringt Docker im Projekt?

A

-Postgres, Redits, Celery, Flask ohne die direkt zu installieren

20
Q

Beschreibe das MTV-Pattern aus Django!

A
  • Model-Template-View
  • Model sind die Datenbank-Modelle
  • Template sind die HTML-Templates
  • View sind die Routes, die URL Endpoints auf HTTP Responses mappen
21
Q

Beschreibe das MVC-Pattern aus Flask

A

-Model-View-Controller

22
Q

Was sind die Hauptfeatures von Jinja 2?

A
  • 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