vault backup: 2026-06-01 15:11:31
This commit is contained in:
Vendored
+6
-4
File diff suppressed because one or more lines are too long
@@ -1,7 +1,9 @@
|
|||||||
|
---
|
||||||
|
created: 2026-06-01
|
||||||
|
updated: 2026-06-01
|
||||||
|
---
|
||||||
|
|
||||||
# Экзамен — Разработка веб-ориентированных информационных систем
|
# Экзамен — Разработка веб-ориентированных информационных систем
|
||||||
|
|
||||||
> Временная заметка для экспорта в PDF. Удалить после использования.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Блок 1. Общие вопросы
|
## Блок 1. Общие вопросы
|
||||||
@@ -176,17 +178,18 @@ $$340\ 282\ 366\ 920\ 938\ 463\ 463\ 374\ 607\ 431\ 768\ 211\ 456 \text{ адр
|
|||||||
|
|
||||||
### Localhost и порты
|
### Localhost и порты
|
||||||
|
|
||||||
**localhost** — стандартное доменное имя для loopback-адреса `127.0.0.1` (IPv4) или `::1` (IPv6). Означает «этот же компьютер».
|
**localhost** — стандартное доменное имя для loopback-адреса `127.0.0.1` (IPv4) или `::1` (IPv6). Означает "этот же компьютер".
|
||||||
|
|
||||||
**Стандартные порты:**
|
**Стандартные порты:**
|
||||||
| Протокол | Порт |
|
|
||||||
| --- | --- |
|
| Протокол | Порт |
|
||||||
| HTTP | 80 |
|
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---- |
|
||||||
| HTTPS | 443 |
|
| HTTP | 80 |
|
||||||
| FTP | 21 |
|
| HTTPS | 443 |
|
||||||
| SSH | 22 |
|
| FTP | 21 |
|
||||||
| DNS | 53 |
|
| SSH | 22 |
|
||||||
| SMTP | 25 |
|
| DNS | 53 |
|
||||||
|
| SMTP | 25 |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -204,13 +207,14 @@ Content-Type: application/json
|
|||||||
```
|
```
|
||||||
|
|
||||||
**Основные методы:**
|
**Основные методы:**
|
||||||
| Метод | Назначение |
|
|
||||||
|---|---|
|
| Метод | Назначение |
|
||||||
| GET | Получить ресурс |
|
| ------ | -------------------------- |
|
||||||
| POST | Создать / отправить данные |
|
| GET | Получить ресурс |
|
||||||
| PUT | Заменить ресурс целиком |
|
| POST | Создать / отправить данные |
|
||||||
| PATCH | Частично обновить |
|
| PUT | Заменить ресурс целиком |
|
||||||
| DELETE | Удалить |
|
| PATCH | Частично обновить |
|
||||||
|
| DELETE | Удалить |
|
||||||
|
|
||||||
**Структура HTTP-ответа:**
|
**Структура HTTP-ответа:**
|
||||||
```
|
```
|
||||||
@@ -221,13 +225,14 @@ Content-Type: text/html
|
|||||||
```
|
```
|
||||||
|
|
||||||
**Коды ответов:**
|
**Коды ответов:**
|
||||||
| Диапазон | Смысл | Примеры |
|
|
||||||
|---|---|---|
|
| Диапазон | Смысл | Примеры |
|
||||||
| 1xx | Информационные | 100 Continue |
|
| -------- | --------------- | --------------------------------------------------------------- |
|
||||||
| 2xx | Успех | 200 OK, 201 Created, 204 No Content |
|
| 1xx | Информационные | 100 Continue |
|
||||||
| 3xx | Перенаправление | 301 Moved Permanently, 302 Found |
|
| 2xx | Успех | 200 OK, 201 Created, 204 No Content |
|
||||||
| 4xx | Ошибка клиента | 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found |
|
| 3xx | Перенаправление | 301 Moved Permanently, 302 Found |
|
||||||
| 5xx | Ошибка сервера | 500 Internal Server Error, 503 Service Unavailable |
|
| 4xx | Ошибка клиента | 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found |
|
||||||
|
| 5xx | Ошибка сервера | 500 Internal Server Error, 503 Service Unavailable |
|
||||||
|
|
||||||
**HTTPS** — HTTP поверх TLS/SSL. Шифрует передачу данных; порт 443. Сертификат подтверждает подлинность сервера.
|
**HTTPS** — HTTP поверх TLS/SSL. Шифрует передачу данных; порт 443. Сертификат подтверждает подлинность сервера.
|
||||||
|
|
||||||
@@ -257,8 +262,8 @@ URL ⊆ URI; URN ⊆ URI.
|
|||||||
### Идентификация, аутентификация, авторизация
|
### Идентификация, аутентификация, авторизация
|
||||||
|
|
||||||
- **Идентификация** — присвоение субъектам уникальных идентификаторов (логин, email).
|
- **Идентификация** — присвоение субъектам уникальных идентификаторов (логин, email).
|
||||||
- **Аутентификация** — проверка подлинности: «ты действительно тот, кем представляешься?» (пароль, токен, биометрия).
|
- **Аутентификация** — проверка подлинности: "ты действительно тот, кем представляешься?" (пароль, токен, биометрия).
|
||||||
- **Авторизация** — проверка прав: «что тебе разрешено делать?» (роли, разрешения).
|
- **Авторизация** — проверка прав: "что тебе разрешено делать?" (роли, разрешения).
|
||||||
|
|
||||||
**Модель CIA:**
|
**Модель CIA:**
|
||||||
- **Конфиденциальность** — данные недоступны неавторизованным.
|
- **Конфиденциальность** — данные недоступны неавторизованным.
|
||||||
@@ -445,18 +450,19 @@ URL ⊆ URI; URN ⊆ URI.
|
|||||||
- `<label for="id">` — подпись к полю (клик по label фокусирует input).
|
- `<label for="id">` — подпись к полю (клик по label фокусирует input).
|
||||||
|
|
||||||
**Типы `<input>`:**
|
**Типы `<input>`:**
|
||||||
| `type` | Назначение |
|
|
||||||
|---|---|
|
| `type` | Назначение |
|
||||||
| `text` | Обычная строка |
|
| ---------- | ------------------------------------------ |
|
||||||
| `password` | Пароль (символы скрываются) |
|
| `text` | Обычная строка |
|
||||||
| `email` | Email с базовой проверкой формата |
|
| `password` | Пароль (символы скрываются) |
|
||||||
| `number` | Числовой ввод |
|
| `email` | Email с базовой проверкой формата |
|
||||||
| `checkbox` | Флажок (можно выбрать несколько) |
|
| `number` | Числовой ввод |
|
||||||
| `radio` | Выбор одного из группы (одинаковый `name`) |
|
| `checkbox` | Флажок (можно выбрать несколько) |
|
||||||
| `file` | Загрузка файла |
|
| `radio` | Выбор одного из группы (одинаковый `name`) |
|
||||||
| `date` | Выбор даты |
|
| `file` | Загрузка файла |
|
||||||
| `hidden` | Скрытое поле |
|
| `date` | Выбор даты |
|
||||||
| `submit` | Кнопка отправки |
|
| `hidden` | Скрытое поле |
|
||||||
|
| `submit` | Кнопка отправки |
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<fieldset>
|
<fieldset>
|
||||||
@@ -806,18 +812,19 @@ class Book(models.Model):
|
|||||||
blank=True)
|
blank=True)
|
||||||
```
|
```
|
||||||
|
|
||||||
- **`ForeignKey`** — «один ко многим»: у одного автора много книг.
|
- **`ForeignKey`** — "один ко многим": у одного автора много книг.
|
||||||
- **`OneToOneField`** — «один к одному».
|
- **`OneToOneField`** — "один к одному".
|
||||||
- **`ManyToManyField`** — «многие ко многим»; Django автоматически создаёт промежуточную таблицу.
|
- **`ManyToManyField`** — "многие ко многим"; Django автоматически создаёт промежуточную таблицу.
|
||||||
|
|
||||||
**`on_delete`:**
|
**`on_delete`:**
|
||||||
| Значение | Поведение |
|
|
||||||
|---|---|
|
| Значение | Поведение |
|
||||||
| `CASCADE` | Удалить текущую запись вместе со связанной |
|
| ------------- | ------------------------------------------ |
|
||||||
| `PROTECT` | Запретить удаление, пока есть ссылки |
|
| `CASCADE` | Удалить текущую запись вместе со связанной |
|
||||||
| `SET_NULL` | Записать `NULL` (нужен `null=True`) |
|
| `PROTECT` | Запретить удаление, пока есть ссылки |
|
||||||
| `SET_DEFAULT` | Записать значение по умолчанию |
|
| `SET_NULL` | Записать `NULL` (нужен `null=True`) |
|
||||||
| `DO_NOTHING` | Ничего не делать |
|
| `SET_DEFAULT` | Записать значение по умолчанию |
|
||||||
|
| `DO_NOTHING` | Ничего не делать |
|
||||||
|
|
||||||
**`related_name`** — имя обратной связи: `author.books.all()`.
|
**`related_name`** — имя обратной связи: `author.books.all()`.
|
||||||
|
|
||||||
@@ -1002,13 +1009,14 @@ urlpatterns = [
|
|||||||
```
|
```
|
||||||
|
|
||||||
**Конвертеры пути:**
|
**Конвертеры пути:**
|
||||||
| Конвертер | Тип | Пример URL |
|
|
||||||
|---|---|---|
|
| Конвертер | Тип | Пример URL |
|
||||||
| `<str:name>` | Строка без `/` | `/user/ivan/` |
|
| ---------------- | ---------------------- | -------------------- |
|
||||||
| `<int:pk>` | Целое положительное | `/post/42/` |
|
| `<str:name>` | Строка без `/` | `/user/ivan/` |
|
||||||
| `<slug:slug>` | Буквы, цифры, `_`, `-` | `/tag/django-orm/` |
|
| `<int:pk>` | Целое положительное | `/post/42/` |
|
||||||
| `<uuid:id>` | UUID | `/item/075194d3-...` |
|
| `<slug:slug>` | Буквы, цифры, `_`, `-` | `/tag/django-orm/` |
|
||||||
| `<path:subpath>` | Строка с `/` | `/files/a/b/c.txt` |
|
| `<uuid:id>` | UUID | `/item/075194d3-...` |
|
||||||
|
| `<path:subpath>` | Строка с `/` | `/files/a/b/c.txt` |
|
||||||
|
|
||||||
**`re_path`** — маршрут с регулярным выражением:
|
**`re_path`** — маршрут с регулярным выражением:
|
||||||
```python
|
```python
|
||||||
|
|||||||
Reference in New Issue
Block a user