Pytania twarde z rozmów Django Flashcards

1
Q

Co to jest Django?

A

Django to darmowy i open-source’owy framework do tworzenia aplikacji webowych

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

Django vs Flask

A

Django pozwala budować duże projekty, podczas gdy Flask wspiera mniejsze aplikacje.

Django reprezentuje bardziej ‘batteries included approach’ co oznacza np. że szablony, panel administratora, czy ORM nie wymagają dodatkowej instalacji.
I możemy tworzyć pełne strony internetowe bez korzystania z wielu dodatkowych narzędzi. Podczas gdy Flask jest bardziej elastyczny i użytkownik może wybrać dowolne narzędzia innych firm zgodnie z własnymi wymaganiami.
Flask jest więc lżejszym i prostszym frameworkiem.
Djago nie ma też wizualnego debuggera jak flask, czyli nie możemy debugować testu podczas gdy jest on wykonywany.
Za to Django posiada swój Bootstrapping-tool, a Flask nie.

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

ORM

A

ORM (mapowanie obiektowo-relacyjne , ang. object Relational Mapping)
to konwersja danych pomiędzy obiektowym językiem programowania (Pythonem), a bazą danych (np. PostgreSQL) i odwrotnie

W Django object relational mapper umożliwia nam interakcję z bazą danych bez znajomości języka zapytań (SQL).

Mapper działa jako warstwa abstrakcji pomiędzy modelami, a bazą danych

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

firmy używających Django

A

Instagram, DISCUS, Mozilla Firefox, YouTube, Pinterest, Reddit

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

architektura Django
MVT

A

Django to framework oparty o model
MVT (Model View Template):
M model (,,model”))
V widok („view”).
T szablon („template”)

Deweloper dostarcza models, views i templates, odwzorowuje je na adresy urls, a następnie Django udostępnia je w postaci aplikacji użytkownikowi.

Model MTV jest oparty na architekturze MVC (Model View Controller).

Django różni się od MVC ponieważ zachowuje własne konwencje. Kontroler jest obsługiwany przez sam framework.

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

struktura plików/katalogów

A

manage.py - narzędzie wiersza poleceń, które umożliwia interakcję z projektem Django

__init.py__ pusty plik, który mówi Pythonowi, że bieżący folder powinien być traktowany jako pakiet Pythona

settings.py - plik konfiguracyjny projektu, zawierający ustawienia naszej aplikacji. Są tam określone ustawienia: bazy danych, secret key, zarejestrowane są aplikacje wchodzące w skład naszego projektu i wiele innych

urls.py - tutaj znajdują się wszystkie adresy URL (enpointy, routy) projektu

wsgi.py — to jest punkt wejścia dla naszej aplikacji, który jest używany przez serwery WWW do obsługi utworzonego przez nas projektu.

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

models

A

Model w Django odnosi się do klasy, zdefiniowanej w pliku models.py, która odwzorowuje tabelę bazy danych (zwykle 1 klasa to 1 tabela) lub kolekcję bazy danych.

Każdy atrybut tej klasy reprezentuje pole bazy danych.

Każda klasa (model), którą tworzymy dziedziczy po django.db.models.Model

W modelu określamy również typ danych, który będzie zamieszczany w danym polu tabeli. Robi się to za pomocą np, CharField, IntegerField, czy SlugField i zwykle określamy ich wielkość.

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

templates

A

templates (szablony) są integralną częścią architektury Django MVT.

Szablony obejmują zarówno pliki HTML jak i CSS oraz js. Przechowujemy w nich zmienne dynamiczne (zmienne i tagi) oraz hardcodowane informacje (np. ciągi tekstowe) wyświetlane pod różnymi adresami url. Pliki te są renderowane przy pomocy widoków (views.py).

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

Django template language

A

Pozwala na umieszczenie logiki w plikach szablonów:
{% %}
{{ }}

Zawiera takie konstrukty jak:
- zmienne
- tagi
- filtry
- komentarze

Dzięki temu językowi pliki HTML są bardziej dynamiczne i możemy wstrzykiwać do nich dane.

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

views

A

to metody napisane w Pythonie, które przyjmują żądania sieciowe (requesty) i zwracają odpowiedzi sieciowe (web responses).

Takimi odpowiedziami mogą być:
- wyrenderowany HTML danej strony,
- przekierowania
- błędy np. 404
- dokumenty XML
- obrazy itp.

Są dwa rodzaje views:
Function-Based Views ( Widoki oparte na funkcjach): w tym przypadku importujemy nasz widok jako funkcję.

Class-based Views (widoki oparte na klasach): podejście zorientowane obiektowo.

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

static files

A

Witryny zazwyczaj muszą udostępniać dodatkowe pliki, takie jak obrazy, pliki JavaScript czy CSS.

W Django pliki te są określane jako „pliki statyczne”. Poza tym Django udostępnia django.contrib.staticfiles do zarządzania tymi plikami statycznymi.

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

Django Rest Framework (DRF)

A

Django REST to specjalistyczny framework Python typu open source, który umożliwia budowę zaawansowanych interfejsów API

Dzięki temu programiści mogą budować zarówno proste w obsłudze interfejsy API, jak i skomplikowane systemy REST (Representational State Transfer), które umożliwiają komunikację pomiędzy API a aplikacją czy witryną internetową.

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

django-admin

A

django-admin to narzędzie wiersza poleceń Django do zadań administracyjnych.

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

Jinja templating

A

Jinja Templating to bardzo popularny silnik szablonów dla Pythona, najnowsza wersja to Jinja2.

Jinja2 − silnik szablonów dla języka programowania Python pozwalający na separację logiki aplikacji od jej warstwy prezentacyjnej.

Co robi?
- generuje szablony HTML znacznie szybciej niż domyślny silnik
- zapewnia łatwiejsze debugowanie w porównaniu z domyślnym silnikiem
- zapewnia też dziedziczenie szablonów
- zapewnia HTML escaping, czyli znaki takie jak <, >, &. mają specjalne wartości w szablonach
- pomaga automatyzować proces testowania (sandbox framework)

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

django manage.py

A

narzędzie wiersza poleceń, które umożliwia interakcję z projektem Django

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

urls

A

plik w którym do zmiennej urlpatterns przypiujemy zdefiniowane przez nas adresy url (endpointy) aplikacji. Mogą być one zarówno statyczne, jak i dynamiczne, i są one dopasowywane do równoważnej funkcji widoku.

Mapowanie pomiędzy adresami URL a widokami zapewnia moduł URLconf Django.

15
Q

projekt a aplikacja

A

W prostych słowach Projekt to całość, na który składa się większość mniejszych aplikacji. Każda z tych aplikacji to moduł wewnątrz projektu, który zajmuje się jednym konkretnym przypadkiem użycia.

Na przykład mamy projekt Allegro, a w nim mniejszą aplikację: obsługa koszyka

16
Q

dziedziczenie modeli w Django

A
  1. Abstract Base Class Inheritance
    używany, gdy potrzebujemy klasy nadrzędnej do przechowywania informacji, których nie chcemy pisać dla każdego modelu podrzędnego.
  2. Multi-Table Model Inheritance
    używany, gdy tworzymy podklasę istniejącego modelu i potrzebujemy, aby każdy model miał własną tabelę w bazie danych.
  3. Proxy Model Inheritance
    używane, gdy chcemy zachować pole modelu podczas zmiany funkcjonowania modelu na poziomie Pythona.
17
Q

mixin

A

forma wielokrotnego dziedziczenia
zapewnia metody dla innych klas ale sama nie jest uważana za klasę bazową

Mixiny zapewniają doskonały sposób na ponowne wykorzystanie kodu z wielu klas.

18
Q

sesje

A

Sesja – tymczasowo, zapamiętane na serwerze dane dotyczące połączenia z klientem.

Sesje są w pełni obsługiwane w Django. Korzystając z ram sesji, można łatwo przechowywać i pobierać tymczasowe dane na podstawie liczby odwiedzających witrynę

Ta struktura przechowuje dane po stronie serwera i zajmuje się wysyłaniem i odbieraniem plików cookie. Te pliki cookie składają się z identyfikatora sesji, ale nie z samych danych, chyba że wyraźnie użyjesz cookie-based backend.

19
Q

Pillow

A

dodatkowa biblioteka dla Django, która umożliwia obsługę plików obrazów

20
Q

middleware

A

Middleware w Django to niskopoziomowy system “wtyczek” wpływających na dane przesyłane do i z aplikacji Django.

Obrazując middleware to kod, który będzie automatycznie wykonywany przed/po wykonaniu widoku, przed wysłaniem odpowiedzi do klienta (przeglądarki)

21
Q

migracje

A

Django używa migracji do propagowania zmian wprowadzanych w modelach do bazy danych.

22
Q

databases supported by Django

A

PostgreSQL
MySQL
SQLite

MariaDB
Oracle

23
Q

abstract model class
abstract base class

A

Tworzymy je gdy chcemy umieścić wspólne informacje w wielu innych modelach.

Aby ją utworzyć w klasie Meta należy ustawić abstract = True

Po niej dziedziczą inne modele, u których chcemy wspólne pola

24
Q

current version of django

A

4.1.7

25
Q

Django LTS

A

LTS (long term support)
wsparcie dla konkretnych wersji Django z oficjalnego źródła

26
Q

transakcja atomowa django

A

Atomowość jest właściwością definiującą transakcje bazy danych.

Transakcja atomowa jest niepodzielną i nieredukowalną serią operacji bazy danych,