Auto | arch-x1: 2026-06-05 13:29:15
This commit is contained in:
+534
-3
@@ -1,5 +1,5 @@
|
||||
---
|
||||
status: seed
|
||||
status: processing
|
||||
type: concept
|
||||
tags: []
|
||||
created: 2025-12-17
|
||||
@@ -9,6 +9,537 @@ aliases: []
|
||||
|
||||
# Вопросы по Вебу
|
||||
|
||||
## Теория по блокам
|
||||
|
||||
Опорные заметки:
|
||||
|
||||
- [[IP-адрес]], [[IPv6]], [[Подсети и маска подсети]], [[NAT]], [[DNS]], [[TCP Vs UDP]]
|
||||
- [[HTTP, HTTPS и HTTP3]], [[Сетевые порты]], [[Веб-аутентификация и авторизация]], [[OAuth 2.0]], [[URI, URL, URN]]
|
||||
- [[Основы HTML (структура, таблицы, формы)]]
|
||||
- [[CSS: Основы и селекторы]], [[CSS: Адаптивность, Flexbox и Grid]]
|
||||
- [[Django Модели и ORM]], [[Django: Представления, шаблоны и CBV]], [[Django: Формы и CUD]]
|
||||
|
||||
### Блок 1. Общие вопросы
|
||||
|
||||
**IP-адрес** - адрес узла в сети. IPv4 записывается как `192.168.1.10`, внутри это 32 бита. IPv6 длиннее, 128 бит, например `2001:db8::1`.
|
||||
|
||||
**Маска подсети** показывает, какая часть IP относится к сети, а какая - к устройству. В `192.168.1.10/24` первые 24 бита - сеть, оставшаяся часть - хост.
|
||||
|
||||
**Приватные IPv4-адреса** используются внутри локальных сетей: `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`. Они не маршрутизируются напрямую в интернете.
|
||||
|
||||
**Localhost** - обращение к самому себе. Обычно это `127.0.0.1`.
|
||||
|
||||
**NAT** переводит внутренний приватный адрес в публичный. Домашний роутер обычно делает PAT: много устройств выходят в интернет через один публичный IP, а различаются по портам.
|
||||
|
||||
**DNS** превращает доменное имя в IP-адрес. Браузер не ходит на `example.com` как на текст - сначала нужно узнать IP через DNS.
|
||||
|
||||
**TCP** устанавливает соединение через `SYN`, `SYN-ACK`, `ACK`, следит за доставкой и порядком данных. Поэтому он подходит для HTTP/HTTPS.
|
||||
|
||||
**HTTP** - протокол запроса и ответа. Клиент отправляет запрос, сервер возвращает ответ. HTTP не хранит состояние сам по себе.
|
||||
|
||||
**GET** обычно получает данные. **POST** обычно отправляет данные в теле запроса: форму, JSON, файл.
|
||||
|
||||
**HTTP-ответ** содержит код состояния:
|
||||
|
||||
- `2xx` - успех;
|
||||
- `3xx` - перенаправление;
|
||||
- `4xx` - ошибка клиента;
|
||||
- `5xx` - ошибка сервера.
|
||||
|
||||
**HTTPS** - это HTTP поверх TLS. Он шифрует трафик и проверяет сервер через сертификат. HTTP обычно использует порт `80`, HTTPS - `443`.
|
||||
|
||||
**HTTP/3** использует QUIC поверх UDP. Смысл методов и кодов HTTP не меняется, меняется транспорт.
|
||||
|
||||
**Идентификация** - пользователь сообщает, кто он. **Аутентификация** - доказывает это. **Авторизация** - система решает, что ему можно.
|
||||
|
||||
**OAuth 2.0** позволяет приложению получить ограниченный доступ без передачи пароля пользователя. Это протокол авторизации, не прямой протокол логина.
|
||||
|
||||
**URI** - общий идентификатор ресурса. **URL** - адрес и способ получить ресурс. **URN** - устойчивое имя без обязательного адреса.
|
||||
|
||||
### Блок 2. HTML
|
||||
|
||||
HTML описывает структуру страницы. Минимальная структура:
|
||||
|
||||
```html
|
||||
<!doctype html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Страница</title>
|
||||
</head>
|
||||
<body>
|
||||
Контент
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
`<head>` содержит служебные данные: `meta`, `title`, `link`, `script`. Видимый контент находится в `<body>`.
|
||||
|
||||
HTML-комментарий:
|
||||
|
||||
```html
|
||||
<!-- комментарий -->
|
||||
```
|
||||
|
||||
**Нормальный поток** - стандартная раскладка без flex/grid/position. Блочные элементы идут сверху вниз, строчные - внутри строки.
|
||||
|
||||
**Блочные элементы**: `<div>`, `<p>`, `<h1>`, `<section>`, `<form>`. Обычно занимают всю строку.
|
||||
|
||||
**Строчные элементы**: `<span>`, `<a>`, `<strong>`, `<em>`, `<code>`. Идут внутри текста.
|
||||
|
||||
**Семантические теги** помогают показать смысл: `<header>`, `<nav>`, `<main>`, `<section>`, `<article>`, `<aside>`, `<footer>`.
|
||||
|
||||
`class` используют для групповой стилизации. `id` должен быть уникальным на странице и часто используется для якорей и связи с `label`.
|
||||
|
||||
Заголовки - `<h1>` ... `<h6>`, абзацы - `<p>`, списки - `<ul>`/`<ol>` + `<li>`, таблицы - `<table>`, `<tr>`, `<th>`, `<td>`.
|
||||
|
||||
Ссылка:
|
||||
|
||||
```html
|
||||
<a href="https://example.com">Текст</a>
|
||||
```
|
||||
|
||||
Картинка:
|
||||
|
||||
```html
|
||||
<img src="image.jpg" alt="Описание">
|
||||
```
|
||||
|
||||
Повторяющиеся пробелы и переносы строк в HTML схлопываются. Для явного переноса используют `<br>`, но для абзацев лучше `<p>`.
|
||||
|
||||
### Блок 3. HTML Forms
|
||||
|
||||
Форма собирает данные пользователя и отправляет их на сервер:
|
||||
|
||||
```html
|
||||
<form action="/login/" method="post">
|
||||
<input name="username">
|
||||
<button type="submit">Войти</button>
|
||||
</form>
|
||||
```
|
||||
|
||||
Главные атрибуты формы:
|
||||
|
||||
- `action` - куда отправлять данные;
|
||||
- `method` - каким HTTP-методом: обычно `get` или `post`.
|
||||
|
||||
У полей:
|
||||
|
||||
- `id` нужен для связи с `label`;
|
||||
- `name` нужен серверу, именно под этим именем поле попадёт в запрос.
|
||||
|
||||
`label` связывают с полем через `for` и `id`:
|
||||
|
||||
```html
|
||||
<label for="email">Email</label>
|
||||
<input id="email" name="email" type="email">
|
||||
```
|
||||
|
||||
`radio` выбирает один вариант из группы с одинаковым `name`. `checkbox` - независимый флажок, можно выбрать несколько.
|
||||
|
||||
`required` делает поле обязательным. `placeholder` показывает подсказку внутри пустого поля, но не заменяет `label`.
|
||||
|
||||
`fieldset` и `legend` логически группируют поля.
|
||||
|
||||
`textarea` - многострочное поле текста.
|
||||
|
||||
У `<button>` важно явно указывать `type`: `submit`, `button`, `reset`.
|
||||
|
||||
### Блок 4. CSS selectors
|
||||
|
||||
CSS выбирает элементы селекторами и применяет к ним свойства.
|
||||
|
||||
Основные селекторы:
|
||||
|
||||
- `*` - все элементы;
|
||||
- `p` - все теги `<p>`;
|
||||
- `.card` - элементы с классом;
|
||||
- `#main` - элемент с id;
|
||||
- `div p` - потомки;
|
||||
- `div > p` - прямые дочерние элементы;
|
||||
- `h2 + p` - сосед сразу после `h2`;
|
||||
- `input[required]` - элементы по атрибуту;
|
||||
- `a:hover` - псевдокласс;
|
||||
- `li:nth-child(2)` - структурный псевдокласс.
|
||||
|
||||
Группировка:
|
||||
|
||||
```css
|
||||
h1, h2, h3 {
|
||||
color: black;
|
||||
}
|
||||
```
|
||||
|
||||
Комбинация селекторов:
|
||||
|
||||
```css
|
||||
button.primary:hover {
|
||||
background: blue;
|
||||
}
|
||||
```
|
||||
|
||||
**Каскад** - правила могут переопределять друг друга. Если свойство конфликтует, важны специфичность и порядок.
|
||||
|
||||
Специфичность по силе:
|
||||
|
||||
1. inline-style;
|
||||
2. id;
|
||||
3. class, attribute, pseudo-class;
|
||||
4. tag, pseudo-element.
|
||||
|
||||
Пример: `body .content` сильнее, чем `div p`, потому что класс сильнее тега.
|
||||
|
||||
Наследование - некоторые свойства переходят от родителя к потомку, например `color` и `font-family`. `margin`, `padding`, `border` обычно не наследуются.
|
||||
|
||||
### Блок 4. CSS базовые свойства
|
||||
|
||||
Блочная модель:
|
||||
|
||||
- `content` - содержимое;
|
||||
- `padding` - внутренний отступ;
|
||||
- `border` - рамка;
|
||||
- `margin` - внешний отступ.
|
||||
|
||||
`box-sizing: content-box` - `width` задаёт только контент. `box-sizing: border-box` - `width` включает `padding` и `border`.
|
||||
|
||||
Если задано `width: 100px`, `padding: 10px`, `border: 5px`, `box-sizing: border-box`, реальная ширина будет `100px`.
|
||||
|
||||
Фон:
|
||||
|
||||
- `background-color`;
|
||||
- `background-image`;
|
||||
- `background-repeat`;
|
||||
- `background-position`;
|
||||
- `background-size`.
|
||||
|
||||
Шрифты:
|
||||
|
||||
- `font-family` - семейство;
|
||||
- `font-size` - размер;
|
||||
- `font-weight` - толщина;
|
||||
- `font-style` - наклон.
|
||||
|
||||
Текст:
|
||||
|
||||
- `text-align` - выравнивание;
|
||||
- `text-decoration` - подчёркивание и другие линии;
|
||||
- `line-height` - расстояние между строками;
|
||||
- `letter-spacing` - расстояние между буквами;
|
||||
- `text-shadow` - тень текста.
|
||||
|
||||
`margin: 0 auto` часто центрирует блочный элемент с заданной шириной.
|
||||
|
||||
### Блок 5. FlexBox Layout. Grid Layout
|
||||
|
||||
Flexbox - одномерная раскладка: по строке или колонке.
|
||||
|
||||
```css
|
||||
.row {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
```
|
||||
|
||||
Главная ось зависит от `flex-direction`. При `row` главная ось горизонтальная, при `column` - вертикальная.
|
||||
|
||||
`justify-content` выравнивает по главной оси. `align-items` - по поперечной. Значение `align-items` по умолчанию - `stretch`.
|
||||
|
||||
`inline-flex` создаёт строчный flex-контейнер.
|
||||
|
||||
Свойства flex-элементов:
|
||||
|
||||
- `flex-grow` - как элемент растёт;
|
||||
- `flex-shrink` - как сжимается;
|
||||
- `flex-basis` - базовый размер до распределения свободного места.
|
||||
|
||||
Grid - двумерная раскладка: строки и столбцы.
|
||||
|
||||
```css
|
||||
.grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
grid-template-rows: auto minmax(200px, 1fr);
|
||||
}
|
||||
```
|
||||
|
||||
`fr` - доля свободного пространства. `repeat(3, 1fr)` - три одинаковых столбца. `minmax(200px, 1fr)` - минимум 200px, максимум по доступному месту.
|
||||
|
||||
Термины Grid:
|
||||
|
||||
- grid lines - линии сетки;
|
||||
- grid tracks - строки или столбцы;
|
||||
- grid cells - ячейки;
|
||||
- grid areas - области.
|
||||
|
||||
### Блок 6. Django models
|
||||
|
||||
Модель Django - Python-класс, который описывает таблицу БД. Поле модели - колонка. Объект модели - строка.
|
||||
|
||||
Если не указать `primary_key`, Django создаёт поле `id`.
|
||||
|
||||
Миграции:
|
||||
|
||||
- `makemigrations` - создать миграции из изменений моделей;
|
||||
- `migrate` - применить миграции к БД.
|
||||
|
||||
`class Meta` задаёт настройки модели: сортировку, имена, ограничения.
|
||||
|
||||
`null=True` разрешает `NULL` в БД. `blank=True` разрешает пустое значение в формах.
|
||||
|
||||
`CharField` требует `max_length`.
|
||||
|
||||
`ForeignKey` задаёт связь "многие к одному". `on_delete` говорит, что делать при удалении связанного объекта. `related_name` задаёт имя обратной связи.
|
||||
|
||||
`ManyToManyField` задаёт связь многие-ко-многим. Связи меняются через `.add()`, `.remove()`, `.set()`, `.clear()`.
|
||||
|
||||
Промежуточная модель задаётся через `through`, если у связи есть свои поля.
|
||||
|
||||
### Блок 7. Django FBV
|
||||
|
||||
FBV - function-based view, обычная функция-представление.
|
||||
|
||||
View принимает `request` и возвращает `HttpResponse` или результат helper-функции:
|
||||
|
||||
```python
|
||||
def home(request):
|
||||
context = {"title": "Home"}
|
||||
return render(request, "index.html", context)
|
||||
```
|
||||
|
||||
В `render()` первым аргументом должен быть `request`.
|
||||
|
||||
Данные в шаблон передаются через context-словарь.
|
||||
|
||||
`get_object_or_404(Model, pk=pk)` получает объект или возвращает ошибку 404, если объекта нет.
|
||||
|
||||
Маршрут связывает URL и view:
|
||||
|
||||
```python
|
||||
path("", views.home, name="home")
|
||||
```
|
||||
|
||||
### Блок 8. Django CBV
|
||||
|
||||
CBV - class-based view, представление как класс.
|
||||
|
||||
Основные классы:
|
||||
|
||||
- `TemplateView` - просто показать шаблон;
|
||||
- `ListView` - показать список объектов;
|
||||
- `DetailView` - показать один объект.
|
||||
|
||||
CBV вызывается в маршруте через `.as_view()`:
|
||||
|
||||
```python
|
||||
path("posts/", PostListView.as_view(), name="post_list")
|
||||
```
|
||||
|
||||
`ListView` и `DetailView` можно привязать к модели через `model = Post` или через `queryset`.
|
||||
|
||||
Если в `ListView` не указать ни `model`, ни `queryset`, Django выдаст ошибку.
|
||||
|
||||
Стандартные переменные:
|
||||
|
||||
- `ListView`: `object_list` и `<model>_list`;
|
||||
- `DetailView`: `object` и `<model>`.
|
||||
|
||||
Дополнительные данные добавляют через `get_context_data()`.
|
||||
|
||||
Список объектов меняют через `get_queryset()`. Один объект в `DetailView` меняют через `get_object()`.
|
||||
|
||||
Паджинация в `ListView`:
|
||||
|
||||
```python
|
||||
paginate_by = 10
|
||||
```
|
||||
|
||||
Шаблоны по умолчанию:
|
||||
|
||||
- `ListView`: `<app>/<model>_list.html`;
|
||||
- `DetailView`: `<app>/<model>_detail.html`.
|
||||
|
||||
При переопределении методов часто вызывают `super()`, чтобы сохранить базовую логику Django.
|
||||
|
||||
### Блок 9. Django URLs
|
||||
|
||||
Маршрутизация описывается в `urls.py`.
|
||||
|
||||
`path()`:
|
||||
|
||||
```python
|
||||
path("posts/<int:pk>/", views.detail, name="detail")
|
||||
```
|
||||
|
||||
Аргументы:
|
||||
|
||||
- route - шаблон URL;
|
||||
- view - представление;
|
||||
- kwargs - дополнительные аргументы;
|
||||
- name - имя маршрута.
|
||||
|
||||
Path-конвертеры:
|
||||
|
||||
- `<int:pk>`;
|
||||
- `<str:name>`;
|
||||
- `<slug:slug>`;
|
||||
- `<uuid:id>`;
|
||||
- `<path:subpath>`.
|
||||
|
||||
`urlpatterns` - список маршрутов.
|
||||
|
||||
`re_path()` использует регулярные выражения.
|
||||
|
||||
`reverse()` строит URL по имени маршрута в Python.
|
||||
|
||||
Шаблонный тег:
|
||||
|
||||
```django
|
||||
{% url 'app:name' arg %}
|
||||
```
|
||||
|
||||
`app_name` задаёт namespace приложения.
|
||||
|
||||
### Блок 10. Язык шаблонов Django
|
||||
|
||||
Переменные:
|
||||
|
||||
```django
|
||||
{{ user.name }}
|
||||
```
|
||||
|
||||
Если переменной нет в контексте, обычно выводится пустая строка.
|
||||
|
||||
Теги:
|
||||
|
||||
```django
|
||||
{% for item in items %}
|
||||
{{ forloop.counter }}. {{ item }}
|
||||
{% endfor %}
|
||||
```
|
||||
|
||||
`forloop` даёт служебные данные цикла: `counter`, `first`, `last`.
|
||||
|
||||
Фильтры:
|
||||
|
||||
```django
|
||||
{{ title|lower }}
|
||||
{{ items|length }}
|
||||
{{ date|date:"Y-m-d" }}
|
||||
```
|
||||
|
||||
Наследование:
|
||||
|
||||
```django
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
Контент
|
||||
{% endblock %}
|
||||
```
|
||||
|
||||
Включение шаблона:
|
||||
|
||||
```django
|
||||
{% include "parts/menu.html" %}
|
||||
```
|
||||
|
||||
Статика:
|
||||
|
||||
```django
|
||||
{% load static %}
|
||||
<link rel="stylesheet" href="{% static 'css/app.css' %}">
|
||||
```
|
||||
|
||||
Функции Python с произвольными аргументами напрямую из шаблона обычно не вызывают. Логику готовят во view, model method, custom template tag или filter.
|
||||
|
||||
### Блок 11. Django queries
|
||||
|
||||
ORM позволяет писать запросы к БД через Python-код.
|
||||
|
||||
`QuerySet` ленивый: запрос в БД не выполняется сразу при создании цепочки, а выполняется при обращении к данным.
|
||||
|
||||
Методы:
|
||||
|
||||
- `.all()` - все объекты;
|
||||
- `.filter()` - объекты по условию;
|
||||
- `.exclude()` - исключить условие;
|
||||
- `.get()` - один объект;
|
||||
- `.distinct()` - убрать дубли;
|
||||
- `.aggregate()` - итог по всей выборке, возвращает словарь;
|
||||
- `.annotate()` - вычисляемое поле для каждого объекта;
|
||||
- `.order_by()` - сортировка;
|
||||
- `.count()` - количество;
|
||||
- `.exists()` - проверка существования.
|
||||
|
||||
Цепочки:
|
||||
|
||||
```python
|
||||
Post.objects.filter(is_published=True).order_by("-created_at")
|
||||
```
|
||||
|
||||
`Q` нужен для сложных условий:
|
||||
|
||||
```python
|
||||
Post.objects.filter(Q(title__icontains="web") | Q(body__icontains="web"))
|
||||
```
|
||||
|
||||
`F` нужен для работы с полями на стороне БД:
|
||||
|
||||
```python
|
||||
Post.objects.update(views=F("views") + 1)
|
||||
```
|
||||
|
||||
N+1 - проблема, когда один запрос получает список, а потом в цикле делается по запросу на каждый связанный объект.
|
||||
|
||||
`select_related()` делает SQL JOIN и подходит для `ForeignKey`/`OneToOne`.
|
||||
|
||||
`prefetch_related()` делает отдельный запрос и подходит для `ManyToMany` и обратных связей.
|
||||
|
||||
### Блок 12. Django forms
|
||||
|
||||
`forms.Form` - обычная форма без прямой привязки к модели.
|
||||
|
||||
`forms.ModelForm` - форма на основе модели. Модель и поля задаются в `Meta`.
|
||||
|
||||
Основные поля:
|
||||
|
||||
- `CharField`;
|
||||
- `IntegerField`;
|
||||
- `BooleanField`;
|
||||
- `ChoiceField`;
|
||||
- `EmailField`;
|
||||
- `DateField`;
|
||||
- `FileField`.
|
||||
|
||||
`widget` управляет HTML-видом поля:
|
||||
|
||||
```python
|
||||
password = forms.CharField(widget=forms.PasswordInput)
|
||||
```
|
||||
|
||||
`help_text` задаёт подсказку.
|
||||
|
||||
Валидация одного поля:
|
||||
|
||||
```python
|
||||
def clean_email(self):
|
||||
email = self.cleaned_data["email"]
|
||||
return email
|
||||
```
|
||||
|
||||
Валидация связи между полями:
|
||||
|
||||
```python
|
||||
def clean(self):
|
||||
cleaned_data = super().clean()
|
||||
return cleaned_data
|
||||
```
|
||||
|
||||
После `is_valid()` появляются `cleaned_data` и `errors`. `cleaned_data` содержит очищенные Python-значения.
|
||||
|
||||
## Тестовые вопросы
|
||||
|
||||
### Какой селектор сильнее: `body .content` или `div p`?
|
||||
|
||||
A. div p
|
||||
@@ -263,7 +794,7 @@ C. models.py
|
||||
3) `get_object_or_404()`
|
||||
4) `find_or_404()`
|
||||
|
||||
### Что произойдет, если в LiveView не указать ни `model`, ни `queryset`?
|
||||
### Что произойдет, если в ListView не указать ни `model`, ни `queryset`?
|
||||
1) Он автоматически найдет модель по названию класса.
|
||||
2) Django выдаст ошибку.
|
||||
3) Он покажет все объекты базы.
|
||||
@@ -279,4 +810,4 @@ C. models.py
|
||||
1) Метод `save()` в модели.
|
||||
2) `validate_fields()`.
|
||||
3) `clean_password()`.
|
||||
4) Общий метод `clean()` всего класса формы.
|
||||
4) Общий метод `clean()` всего класса формы.
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
---
|
||||
status: stable
|
||||
status: processing
|
||||
type: concept
|
||||
tags:
|
||||
- network
|
||||
- networking
|
||||
- protocols
|
||||
created: 2025-12-17
|
||||
updated: 2026-05-07
|
||||
updated: 2026-06-05
|
||||
aliases:
|
||||
- TCP Vs UDP
|
||||
---
|
||||
@@ -39,4 +39,18 @@ TCP, как протокол, определен в **RFC (Request For Comments)
|
||||
|
||||
- User Datagram Protocol Просто бросается файлами в "сторону" получающей стороны. Может теряться часть данных, или их порядок. В случае с видео, звонками, мы можем позволить себе потерю данных.
|
||||
|
||||

|
||||

|
||||
|
||||
## Простыми словами для экзамена
|
||||
|
||||
TCP — транспортный протокол с установлением соединения и контролем доставки.
|
||||
|
||||
Перед передачей данных TCP делает трёхстороннее рукопожатие:
|
||||
|
||||
1. `SYN` — клиент просит открыть соединение.
|
||||
2. `SYN-ACK` — сервер подтверждает и тоже просит подтвердить.
|
||||
3. `ACK` — клиент подтверждает, соединение установлено.
|
||||
|
||||
TCP следит за порядком сегментов, подтверждениями, потерями и повторной отправкой. Поэтому он подходит для веб-страниц, файлов, почты и других случаев, где важна целостность.
|
||||
|
||||
UDP проще: отправил датаграмму и не ждёт подтверждения. Это быстрее, но без гарантий доставки и порядка. HTTP/3 использует UDP не напрямую, а через QUIC, который добавляет поверх UDP надёжность, шифрование и управление потоками.
|
||||
|
||||
@@ -8,7 +8,7 @@ tags:
|
||||
- database
|
||||
- migrations
|
||||
created: 2026-05-30
|
||||
updated: 2026-05-31
|
||||
updated: 2026-06-05
|
||||
source:
|
||||
- '[[lec1-django_start_models-1.pdf]]'
|
||||
- '[[lec4-django_lec_queries.pdf]]'
|
||||
@@ -77,6 +77,15 @@ class Article(models.Model):
|
||||
cover = models.ImageField(upload_to="covers/", blank=True)
|
||||
```
|
||||
|
||||
Если не указать `primary_key=True`, Django автоматически создаёт поле `id`. В современных версиях тип поля по умолчанию обычно задаётся настройкой `DEFAULT_AUTO_FIELD`, часто это `BigAutoField`.
|
||||
|
||||
`CharField` требует `max_length`, потому что БД должна знать максимальный размер строки.
|
||||
|
||||
`null=True` и `blank=True` — не одно и то же:
|
||||
|
||||
- `null=True` разрешает хранить `NULL` в базе данных;
|
||||
- `blank=True` разрешает оставлять поле пустым в формах и админке.
|
||||
|
||||
### Отношения
|
||||
- `ForeignKey(Target, on_delete=...)` — связь "один ко многим": у одной записи `Target` может быть много связанных записей текущей модели.
|
||||
- `OneToOneField(Target, on_delete=...)` — связь "один к одному": каждой записи соответствует максимум одна связанная запись.
|
||||
@@ -105,6 +114,32 @@ class Book(models.Model):
|
||||
co_authors = models.ManyToManyField(Author, related_name="coauthored_books", blank=True)
|
||||
```
|
||||
|
||||
`related_name` задаёт имя обратной связи. Если у книги есть `author = ForeignKey(Author, related_name="books")`, то у автора можно получить книги так:
|
||||
|
||||
```python
|
||||
author.books.all()
|
||||
```
|
||||
|
||||
Для `ManyToManyField` промежуточная модель задаётся через `through`, когда у самой связи есть дополнительные поля:
|
||||
|
||||
```python
|
||||
class Student(models.Model):
|
||||
name = models.CharField(max_length=100)
|
||||
|
||||
|
||||
class Course(models.Model):
|
||||
title = models.CharField(max_length=100)
|
||||
students = models.ManyToManyField(Student, through="Enrollment")
|
||||
|
||||
|
||||
class Enrollment(models.Model):
|
||||
student = models.ForeignKey(Student, on_delete=models.CASCADE)
|
||||
course = models.ForeignKey(Course, on_delete=models.CASCADE)
|
||||
grade = models.IntegerField(null=True, blank=True)
|
||||
```
|
||||
|
||||
Связь можно менять методами `.add()`, `.remove()`, `.set()`, `.clear()`.
|
||||
|
||||
---
|
||||
|
||||
## Миграции
|
||||
@@ -214,3 +249,34 @@ books = Book.objects.filter(
|
||||
# F: увеличить счётчик просмотров прямо в БД
|
||||
Book.objects.filter(id=1).update(views=F("views") + 1)
|
||||
```
|
||||
|
||||
## Простыми словами для экзамена
|
||||
|
||||
Модель Django — это Python-класс, который описывает таблицу БД. Поле модели — это колонка таблицы. Объект модели — это строка таблицы.
|
||||
|
||||
`Class Meta` задаёт служебные настройки модели: сортировку, человекочитаемые имена, ограничения, имя таблицы.
|
||||
|
||||
Основные методы QuerySet:
|
||||
|
||||
- `.all()` — все объекты;
|
||||
- `.filter()` — несколько объектов по условию;
|
||||
- `.exclude()` — всё, кроме условия;
|
||||
- `.get()` — ровно один объект; если ноль или больше одного, будет ошибка;
|
||||
- `.order_by()` — сортировка;
|
||||
- `.count()` — количество;
|
||||
- `.exists()` — есть ли хотя бы одна запись;
|
||||
- `.distinct()` — убрать дубли;
|
||||
- `.aggregate()` — один итог по всей выборке, возвращает словарь;
|
||||
- `.annotate()` — добавляет вычисляемое поле каждому объекту.
|
||||
|
||||
Если нужно найти максимум цены по каждой категории, используют `annotate()` на категориях:
|
||||
|
||||
```python
|
||||
Category.objects.annotate(max_price=Max("product__price"))
|
||||
```
|
||||
|
||||
Если нужен один максимум по всем товарам, используют `aggregate()`:
|
||||
|
||||
```python
|
||||
Product.objects.aggregate(max_price=Max("price"))
|
||||
```
|
||||
|
||||
@@ -8,7 +8,7 @@ tags:
|
||||
- cbv
|
||||
- fbv
|
||||
created: 2026-05-30
|
||||
updated: 2026-05-31
|
||||
updated: 2026-06-05
|
||||
source:
|
||||
- '[[lec2-django_lec_urls_views_templates-1.pdf]]'
|
||||
- '[[lec3-django_cbv-1.pdf]]'
|
||||
@@ -76,6 +76,15 @@ from django.urls import reverse
|
||||
url = reverse("blog:post_detail", kwargs={"pk": 1})
|
||||
```
|
||||
|
||||
`path()` обычно принимает:
|
||||
|
||||
- `route` — строка маршрута;
|
||||
- `view` — функция или `ClassView.as_view()`;
|
||||
- `kwargs` — дополнительные аргументы view;
|
||||
- `name` — имя маршрута для `{% url %}` и `reverse()`.
|
||||
|
||||
`app_name` задаёт namespace приложения. Тогда маршрут вызывается как `blog:post_detail`, а не просто `post_detail`.
|
||||
|
||||
---
|
||||
|
||||
## Представления (Views)
|
||||
@@ -94,6 +103,12 @@ def index(request):
|
||||
return render(request, "app/index.html", {"items": latest_items})
|
||||
```
|
||||
|
||||
У `render()` первым аргументом должен идти `request`:
|
||||
|
||||
```python
|
||||
return render(request, "index.html", context)
|
||||
```
|
||||
|
||||
```python
|
||||
from django.shortcuts import get_object_or_404, render
|
||||
|
||||
@@ -140,6 +155,35 @@ class PostDetailView(DetailView):
|
||||
context_object_name = "post"
|
||||
```
|
||||
|
||||
Если в `ListView` не указать ни `model`, ни `queryset`, Django не поймёт, какие объекты показывать, и выдаст ошибку.
|
||||
|
||||
Стандартные имена в контексте:
|
||||
|
||||
- `ListView` — `object_list` и дополнительно `<model>_list`, например `post_list`;
|
||||
- `DetailView` — `object` и дополнительно `<model>`, например `post`.
|
||||
|
||||
Методы, которые часто переопределяют:
|
||||
|
||||
- `get_queryset()` — изменить список объектов;
|
||||
- `get_object()` — изменить получение одного объекта;
|
||||
- `get_context_data()` — добавить данные в шаблон.
|
||||
|
||||
При переопределении `get_context_data()` обычно сначала вызывают базовую логику:
|
||||
|
||||
```python
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
context["title"] = "Посты"
|
||||
return context
|
||||
```
|
||||
|
||||
Паджинация в `ListView` включается через `paginate_by = 10`. В шаблоне появляются `page_obj`, `paginator`, `is_paginated`.
|
||||
|
||||
Шаблоны по умолчанию:
|
||||
|
||||
- `ListView` ищет `<app>/<model>_list.html`;
|
||||
- `DetailView` ищет `<app>/<model>_detail.html`.
|
||||
|
||||
```python
|
||||
# blog/urls.py
|
||||
from django.urls import path
|
||||
@@ -167,6 +211,8 @@ urlpatterns = [
|
||||
|
||||
Шаблон получает контекст из view. Например, если view передала `{"posts": posts}`, в шаблоне доступна переменная `posts`.
|
||||
|
||||
Если обратиться к переменной, которой нет в контексте, Django-шаблон обычно выведет пустую строку, а не Python-ошибку.
|
||||
|
||||
```html
|
||||
{% for post in posts %}
|
||||
<article>
|
||||
@@ -247,3 +293,27 @@ STATICFILES_DIRS = [BASE_DIR / "static"]
|
||||
```bash
|
||||
python manage.py collectstatic
|
||||
```
|
||||
|
||||
## Простыми словами для экзамена
|
||||
|
||||
FBV — view как функция. CBV — view как класс с готовой логикой.
|
||||
|
||||
Маршрут соединяет URL и view:
|
||||
|
||||
```python
|
||||
path("find/", views.find, name="find")
|
||||
```
|
||||
|
||||
В шаблоне ссылка на именованный маршрут создаётся так:
|
||||
|
||||
```html
|
||||
<a href="{% url 'myapp:find' %}">Поиск</a>
|
||||
```
|
||||
|
||||
Шаблонные переменные пишутся через `{{ variable }}`. Шаблонные теги пишутся через `{% tag %}`. Комментарии пишутся через `{# comment #}`.
|
||||
|
||||
Ключ словаря в шаблоне читается через точку:
|
||||
|
||||
```django
|
||||
{{ user_data.name }}
|
||||
```
|
||||
|
||||
@@ -8,7 +8,7 @@ tags:
|
||||
- validation
|
||||
- modelform
|
||||
created: 2026-05-30
|
||||
updated: 2026-05-31
|
||||
updated: 2026-06-05
|
||||
title: "Django: Работа с формами и CUD"
|
||||
source:
|
||||
- '[[lec5-django_cud_form.pdf]]'
|
||||
@@ -43,6 +43,8 @@ class BlogForm(forms.ModelForm):
|
||||
}
|
||||
```
|
||||
|
||||
В `ModelForm` модель и поля задаются во внутреннем классе `Meta`. `fields` показывает, какие поля модели попадут в форму. `exclude` можно использовать наоборот: указать, какие поля не включать.
|
||||
|
||||
---
|
||||
|
||||
## Жизненный цикл формы в представлении
|
||||
@@ -107,6 +109,8 @@ class RegisterForm(forms.Form):
|
||||
return cleaned_data
|
||||
```
|
||||
|
||||
Для проверки связи между полями используют общий `clean()`. Например, "Пароль" и "Повтор пароля" нельзя нормально проверить через `clean_password()`, потому что нужно сравнить два поля.
|
||||
|
||||
---
|
||||
|
||||
## Generic Editing Views (CBV для CUD)
|
||||
@@ -188,3 +192,39 @@ class BlogDeleteView(DeleteView):
|
||||
При `POST` Django сверяет токен из формы с токеном пользователя. Если токена нет или он неправильный, запрос отклоняется.
|
||||
|
||||
Короткое правило: во все HTML-формы с `method="post"` добавлять `{% csrf_token %}`.
|
||||
|
||||
## Простыми словами для экзамена
|
||||
|
||||
Форма Django делает три вещи:
|
||||
|
||||
1. Описывает поля.
|
||||
2. Валидирует входные данные.
|
||||
3. Даёт очищенные данные в `cleaned_data`.
|
||||
|
||||
Основные поля:
|
||||
|
||||
- `CharField` — строка;
|
||||
- `IntegerField` — целое число;
|
||||
- `BooleanField` — `True/False`;
|
||||
- `ChoiceField` — выбор из списка;
|
||||
- `EmailField` — email;
|
||||
- `DateField` — дата;
|
||||
- `FileField` — файл.
|
||||
|
||||
`widget` управляет HTML-представлением поля, а не типом данных. Например, строковое поле можно показать как пароль:
|
||||
|
||||
```python
|
||||
password = forms.CharField(widget=forms.PasswordInput)
|
||||
```
|
||||
|
||||
Подсказка к полю задаётся через `help_text`:
|
||||
|
||||
```python
|
||||
email = forms.EmailField(help_text="Введите рабочую почту")
|
||||
```
|
||||
|
||||
После `form.is_valid()`:
|
||||
|
||||
- `form.cleaned_data` содержит нормальные Python-значения;
|
||||
- `form.errors` содержит ошибки;
|
||||
- `form.save()` у `ModelForm` сохраняет объект модели.
|
||||
|
||||
+33
-27
@@ -1,6 +1,6 @@
|
||||
---
|
||||
generated: 2026-06-05
|
||||
total: 504
|
||||
total: 505
|
||||
---
|
||||
|
||||
# Vault Index
|
||||
@@ -9,7 +9,7 @@ total: 504
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
| Всего заметок | 504 |
|
||||
| Всего заметок | 505 |
|
||||
|
||||
## .
|
||||
|
||||
@@ -20,6 +20,12 @@ total: 504
|
||||
| [[CODEX]] | CODEX | — | — | [] |
|
||||
| [[GEMINI]] | GEMINI | — | — | [] |
|
||||
|
||||
## 00 Inbox
|
||||
|
||||
| Заметка | Aliases | Status | Type | Tags |
|
||||
|---------|---------|--------|------|------|
|
||||
| [[Вопросы по Вебу]] | — | processing | concept | [] |
|
||||
|
||||
## 01 Ideas
|
||||
|
||||
| Заметка | Aliases | Status | Type | Tags |
|
||||
@@ -243,8 +249,8 @@ total: 504
|
||||
| [[Индексное инвестирование]] | Индексное инвестирование | seed | guide | [finance, investments, index, funds] |
|
||||
| [[Инсайдерская торговля и манипулирование рынком]] | Инсайдерская торговля и манипулирование рынком | seed | concept | [finance, investments, market-abuse] |
|
||||
| [[Криптовалюты как инвестиционный актив]] | Криптовалюты как инвестиционный актив | seed | concept | [finance, investments, crypto] |
|
||||
| [[Облигации с залоговым обеспечением]] | Облигации с залоговым обеспечением денежных требований | seed | concept | [finance, investments, bonds, abs] |
|
||||
| [[Облигации]] | Облигации | seed | guide | [finance, investments, bonds] |
|
||||
| [[Облигации с залоговым обеспечением]] | Облигации с залоговым обеспечением денежных требований | seed | concept | [finance, investments, bonds, abs] |
|
||||
| [[Оценка акций]] | Оценка акций | seed | guide | [finance, investments, stocks, valuation] |
|
||||
| [[Риск-профиль инвестора]] | Риск-профиль инвестора | seed | concept | [finance, investments, risk] |
|
||||
| [[Трейдинг]] | Трейдинг | seed | guide | [finance, trading, risk] |
|
||||
@@ -263,8 +269,8 @@ total: 504
|
||||
| [[Методы признания доходов и расходов]] | Методы Признания Доходов И Расходов | seed | concept | [finance, taxes] |
|
||||
| [[Налог на добавленную стоимость]] | Налог На Добавленную Стоимость | seed | concept | [mephi, finance, taxes] |
|
||||
| [[Налог на доходы физических лиц (НДФЛ)]] | Налог На Доходы Физических Лиц (НДФЛ) | processing | concept | [mephi, tax, finance, taxes, ndfl] |
|
||||
| [[Налог на имущество ФЛ]] | Налог На Имущество ФЛ | seed | concept | [finance, taxes] |
|
||||
| [[Налог на имущество организаций]] | Налог На Имущество Организаций | seed | concept | [finance, taxes] |
|
||||
| [[Налог на имущество ФЛ]] | Налог На Имущество ФЛ | seed | concept | [finance, taxes] |
|
||||
| [[Налог на прибыль]] | Налог На Прибыль | seed | concept | [finance, taxes, profit-tax] |
|
||||
| [[Налоги - MOC]] | Налоги - MOC | stable | moc | [finance, taxes] |
|
||||
| [[Налоговая декларация]] | Налоговая Декларация | processing | concept | [mephi, tax, finance, taxes] |
|
||||
@@ -445,8 +451,8 @@ total: 504
|
||||
| [[ФА - вращение]] | ФА - Вращение | seed | concept | [math, statistics, factor-analysis] |
|
||||
| [[ФА - модель, цель, сущность]] | ФА - Модель, Цель, Сущность | stable | concept | [math, ml, mephi, statistics, factor-analysis] |
|
||||
| [[Факторное отображение. Факторная структура]] | Факторное Отображение. Факторная Структура | stable | concept | [math, mephi, statistics, factor-analysis] |
|
||||
| [[Факторный анализ. Цели и сущность. Постановка задачи. Отличие от анализа главных компонент]] | Факторный Анализ. Цели И Сущность. Постановка Задачи. Отличие От Анализа Главных | seed | concept | [math, mephi, statistics, factor-analysis] |
|
||||
| [[Факторный анализ]] | Факторный Анализ | stable | concept | [math, ml, mephi, statistics, factor-analysis] |
|
||||
| [[Факторный анализ. Цели и сущность. Постановка задачи. Отличие от анализа главных компонент]] | Факторный Анализ. Цели И Сущность. Постановка Задачи. Отличие От Анализа Главных | seed | concept | [math, mephi, statistics, factor-analysis] |
|
||||
| [[Фундаментальная теорема факторного анализа]] | Фундаментальная Теорема Факторного Анализа | stable | concept | [math, mephi, statistics, factor-analysis] |
|
||||
| [[Этапы ФА. Выделение факторов]] | Этапы ФА. Выделение Факторов | seed | concept | [math, mephi, statistics, factor-analysis] |
|
||||
|
||||
@@ -470,24 +476,24 @@ total: 504
|
||||
| [[Ethernet]] | Ethernet | stable | concept | [network, networking, ethernet] |
|
||||
| [[LAN vs WAN]] | LAN Vs WAN | stable | concept | [network, networking] |
|
||||
| [[MAC-адрес]] | MAC-адрес | stable | concept | [networking] |
|
||||
| [[NAT]] | NAT | stable | concept | [network, networking, nat] |
|
||||
| [[NAT]] | NAT | processing | concept | [network, networking, nat] |
|
||||
| [[Networking - MOC]] | Networking - MOC | stable | moc | [network, networking] |
|
||||
| [[OAuth 2.0]] | OAuth 2, OAuth 2.0 | seed | concept | [web, security, oauth, authorization] |
|
||||
| [[OAuth 2.0]] | OAuth 2, OAuth 2.0 | processing | concept | [web, security, oauth, authorization] |
|
||||
| [[VLSM]] | VLSM | stable | concept | [network, networking] |
|
||||
| [[VPN]] | VPN | stable | concept | [network, networking, vpn] |
|
||||
| [[Базовая настройка коммутатора]] | Базовая Настройка Коммутатора | stable | concept | [network, networking] |
|
||||
| [[Введение в сетевую безопасность]] | Введение в сетевую безопасность | seed | concept | [networking, security, infosec] |
|
||||
| [[Веб-аутентификация и авторизация]] | Идентификация, аутентификация и авторизация, Веб-аутентификация | seed | concept | [web, security, authentication, authorization, oauth] |
|
||||
| [[Веб-аутентификация и авторизация]] | Идентификация, аутентификация и авторизация, Веб-аутентификация | processing | concept | [web, security, authentication, authorization, oauth] |
|
||||
| [[Витая пара]] | Витая Пара | stable | concept | [network, networking] |
|
||||
| [[Иерархическая модель Cisco]] | Иерархическая Модель Cisco | stable | concept | [network, networking] |
|
||||
| [[Инкапсуляция данных]] | Инкапсуляция Данных | stable | concept | [network, networking] |
|
||||
| [[Коммутатор L3 vs Маршрутизатор]] | Коммутатор L3 Vs Маршрутизатор | stable | concept | [network, networking] |
|
||||
| [[Модель OSI]] | Модель OSI | stable | concept | [network, networking, osi] |
|
||||
| [[Подсети и маска подсети]] | Маска подсети, Подсети | seed | concept | [network, networking, subnet, ipv4] |
|
||||
| [[Подсети и маска подсети]] | Маска подсети, Подсети | processing | concept | [network, networking, subnet, ipv4] |
|
||||
| [[Пример настройки DHCPv6]] | Пример Настройки DHCPv6 | stable | concept | [network, networking] |
|
||||
| [[Режимы передачи данных в сетях]] | Режимы Передачи Данных В Сетях | stable | concept | [network, networking] |
|
||||
| [[Сегментация сети]] | Сегментация Сети | stable | concept | [network, networking] |
|
||||
| [[Сетевые порты]] | Сетевые порты | seed | concept | [network, networking, ports, tcp, udp, web] |
|
||||
| [[Сетевые порты]] | Сетевые порты | processing | concept | [network, networking, ports, tcp, udp, web] |
|
||||
| [[Сетевые устройства]] | Сетевые Устройства | stable | concept | [network, networking] |
|
||||
| [[Утилита Ping]] | Утилита Ping | stable | concept | [network, networking] |
|
||||
| [[Широковещательные и коллизионные домены. Коммутация.]] | Широковещательные И Коллизионные Домены. Коммутация | stable | concept | [network, networking] |
|
||||
@@ -517,20 +523,20 @@ total: 504
|
||||
| Заметка | Aliases | Status | Type | Tags |
|
||||
|---------|---------|--------|------|------|
|
||||
| [[ARP]] | ARP | stable | concept | [network, networking, protocols, arp] |
|
||||
| [[DNS]] | DNS | stable | concept | [network, networking, protocols, dns] |
|
||||
| [[HTTP, HTTPS и HTTP3]] | HTTP, HTTPS и HTTP/3 | seed | concept | [web, network, networking, protocols, http, https, http3] |
|
||||
| [[DNS]] | DNS | processing | concept | [network, networking, protocols, dns] |
|
||||
| [[HTTP, HTTPS и HTTP3]] | HTTP, HTTPS и HTTP/3 | processing | concept | [web, network, networking, protocols, http, https, http3] |
|
||||
| [[ICMP - Internet Control Message]] | ICMP - Internet Control Message | stable | concept | [network, networking, protocols, icmp] |
|
||||
| [[IP-адрес]] | IP-адрес | stable | concept | [network, networking, protocols] |
|
||||
| [[IP-адрес]] | IP-адрес | processing | concept | [network, networking, protocols] |
|
||||
| [[IPv6]] | IPv6 | stable | concept | [network, networking, protocols, ipv6] |
|
||||
| [[TCP vs UDP]] | TCP Vs UDP | stable | concept | [network, networking, protocols] |
|
||||
| [[URI, URL, URN]] | URI, URL, URN | seed | concept | [web, network, networking, uri, url, urn] |
|
||||
| [[TCP vs UDP]] | TCP Vs UDP | processing | concept | [network, networking, protocols] |
|
||||
| [[URI, URL, URN]] | URI, URL, URN | processing | concept | [web, network, networking, uri, url, urn] |
|
||||
|
||||
## 90 Library/Networking/Протоколы/DHCP
|
||||
|
||||
| Заметка | Aliases | Status | Type | Tags |
|
||||
|---------|---------|--------|------|------|
|
||||
| [[DHCP-snooping]] | DHCP-snooping | seed | concept | [network, networking, protocols, dhcp] |
|
||||
| [[DHCP]] | DHCP | stable | concept | [network, networking, protocols, dhcp] |
|
||||
| [[DHCP-snooping]] | DHCP-snooping | seed | concept | [network, networking, protocols, dhcp] |
|
||||
| [[Dynamic ARP Inspection]] | Dynamic ARP Inspection | seed | concept | [network, networking, protocols, dhcp, arp] |
|
||||
| [[Механизм работы - DHCP]] | Механизм Работы - DHCP | stable | concept | [network, networking, protocols, dhcp] |
|
||||
| [[Настройка DHCP - Cisco]] | Настройка DHCP - Cisco | stable | concept | [network, networking, protocols, dhcp] |
|
||||
@@ -562,8 +568,8 @@ total: 504
|
||||
| [[Курс по Python и Django]] | Курс по Python и Django | seed | moc | [python, django, backend] |
|
||||
| [[Модели и ORM]] | Django Модели и ORM | processing | concept | [django, backend, orm, database, migrations] |
|
||||
| [[Основы объектно-ориентированного программирования]] | Основы ООП в Python | seed | concept | [python, oop, classes, inheritance, polymorphism, encapsulation] |
|
||||
| [[Представления, шаблоны и CBV]] | 'Django: Представления, шаблоны и CBV' | processing | concept | [django, routing, templates, cbv, fbv] |
|
||||
| [[Работа с формами и CUD]] | 'Django: Формы и CUD' | processing | concept | [django, forms, crud, validation, modelform] |
|
||||
| [[Представления, шаблоны и CBV]] | Django: Представления, шаблоны и CBV | processing | concept | [django, routing, templates, cbv, fbv] |
|
||||
| [[Работа с формами и CUD]] | Django: Формы и CUD | processing | concept | [django, forms, crud, validation, modelform] |
|
||||
|
||||
## 90 Library/Programming/Ruby
|
||||
|
||||
@@ -576,8 +582,8 @@ total: 504
|
||||
|
||||
| Заметка | Aliases | Status | Type | Tags |
|
||||
|---------|---------|--------|------|------|
|
||||
| [[API импорт в Rails через runner]] | API импорт в Rails через runner | seed | guide | [programming, ruby-on-rails, api] |
|
||||
| [[Active Storage]] | Active Storage | processing | concept | [programming, ruby-on-rails] |
|
||||
| [[API импорт в Rails через runner]] | API импорт в Rails через runner | seed | guide | [programming, ruby-on-rails, api] |
|
||||
| [[Capistrano deploy через systemd]] | Capistrano deploy через systemd | seed | guide | [programming, ruby-on-rails, deploy] |
|
||||
| [[Deploy - finreport-analyzer]] | — | seed | guide | [programming, ruby-on-rails, deploy, linux] |
|
||||
| [[Rails 8 Migration Guide]] | — | seed | guide | [programming, ruby-on-rails, rails-8, migration] |
|
||||
@@ -589,11 +595,11 @@ total: 504
|
||||
|
||||
| Заметка | Aliases | Status | Type | Tags |
|
||||
|---------|---------|--------|------|------|
|
||||
| [[Адаптивность, Flexbox и Grid]] | 'CSS: Адаптивность, Flexbox и Grid' | seed | concept | [css, flexbox, grid, adaptive-design, responsive-web] |
|
||||
| [[Адаптивность, Flexbox и Grid]] | CSS: Адаптивность, Flexbox и Grid | processing | concept | [css, flexbox, grid, adaptive-design, responsive-web] |
|
||||
| [[Основы Bootstrap]] | Основы Bootstrap | seed | concept | [bootstrap, web-development, css-framework, grid-system] |
|
||||
| [[Основы HTML (структура, таблицы, формы)]] | Основы HTML (структура, таблицы, формы) | processing | concept | [html, web-development, structure, tables, forms] |
|
||||
| [[Основы веб-разработки]] | Основы веб-разработки | seed | moc | [web, html, css, bootstrap] |
|
||||
| [[Основы, селекторы и блочная модель]] | CSS: Основы и селекторы | seed | concept | [css, web-development, selectors, box-model] |
|
||||
| [[Основы, селекторы и блочная модель]] | CSS: Основы и селекторы | processing | concept | [css, web-development, selectors, box-model] |
|
||||
|
||||
## 90 Library/Sport
|
||||
|
||||
@@ -606,8 +612,8 @@ total: 504
|
||||
|
||||
| Заметка | Aliases | Status | Type | Tags |
|
||||
|---------|---------|--------|------|------|
|
||||
| [[31, 32 - Налоги 1]] | 31, 32 - Налоги | seed | knowledge | [study, taxes] |
|
||||
| [[31, 32 - Налоги]] | 31, 32 - Налоги | seed | knowledge | [study, taxes] |
|
||||
| [[31, 32 - Налоги 1]] | 31, 32 - Налоги | seed | knowledge | [study, taxes] |
|
||||
| [[Git]] | Git | seed | concept | [] |
|
||||
| [[Gitlab]] | Gitlab | seed | concept | [] |
|
||||
| [[HW Eng17.03]] | HW Eng17.03 | seed | concept | [homework] |
|
||||
@@ -617,27 +623,27 @@ total: 504
|
||||
| [[OSINT - Зачет]] | OSINT - Зачет | processing | knowledge | [mephi, study, osi] |
|
||||
| [[Rails 8 Migration Guide (finreport-analyzer)]] | — | seed | concept | [] |
|
||||
| [[Rails credentials edit не открывает редактор]] | Rails credentials edit не открывает редактор | seed | concept | [] |
|
||||
| [[reader]] | — | seed | concept | [] |
|
||||
| [[Ruby - массивы]] | Ruby - массивы | seed | concept | [] |
|
||||
| [[Ruby - основы языка]] | Ruby - основы языка | seed | concept | [] |
|
||||
| [[Upgrade Homelab]] | Upgrade Homelab | processing | project | [homelab, hardware] |
|
||||
| [[reader]] | — | seed | concept | [] |
|
||||
| [[Алгоритм обратного распространения ошибки для произвольного числа слоев НС]] | Алгоритм обратного распространения ошибки для произвольного числа слоев НС | seed | concept | [] |
|
||||
| [[Алгоритм обучения сети Кохонена]] | Алгоритм обучения сети Кохонена | seed | concept | [] |
|
||||
| [[Анализ типа фин. устойчивости]] | Анализ типа фин. устойчивости | seed | concept | [] |
|
||||
| [[В случае ошибок на принтере Kyocera FS-1020MFP]] | В случае ошибок на принтере Kyocera FS-1020MFP | seed | concept | [] |
|
||||
| [[ВДО no кредитам]] | — | seed | concept | [] |
|
||||
| [[Введение в сетевую безопасность]] | Введение в сетевую безопасность | processing | concept | [] |
|
||||
| [[ВДО no кредитам]] | — | seed | concept | [] |
|
||||
| [[Знания Ruby]] | Знания Ruby | seed | concept | [] |
|
||||
| [[Идеи для статьи]] | Идеи Для Статьи | — | — | [] |
|
||||
| [[Идея]] | — | seed | concept | [] |
|
||||
| [[Идея сети кохонена]] | Идея сети кохонена | seed | concept | [] |
|
||||
| [[Идея — упаковка для еды]] | — | seed | concept | [] |
|
||||
| [[Идея]] | — | seed | concept | [] |
|
||||
| [[Инструкция по деплою finreport-analyzer]] | — | seed | concept | [] |
|
||||
| [[Итераторы для обработки массивов Ruby]] | Итераторы для обработки массивов Ruby | seed | concept | [] |
|
||||
| [[Команды для деплоя с помощью Capistrano]] | — | seed | concept | [] |
|
||||
| [[КР - Кохонен]] | КР - Кохонен | seed | concept | [] |
|
||||
| [[КР - Персептрон]] | КР - Персептрон | seed | concept | [] |
|
||||
| [[КР - Хопфилд]] | КР - Хопфилд | seed | concept | [] |
|
||||
| [[Команды для деплоя с помощью Capistrano]] | — | seed | concept | [] |
|
||||
| [[Лайфхак для NPM. Как проксировать не на поддомен а на под путь]] | Лайфхак для NPM. Как проксировать не на поддомен а на под путь | seed | concept | [] |
|
||||
| [[Материал по Экономическому анализу]] | — | seed | concept | [] |
|
||||
| [[Материалы по ЭА 2]] | — | seed | concept | [] |
|
||||
@@ -652,8 +658,8 @@ total: 504
|
||||
| [[Подготовка к экзамену по Веб-Разработке]] | — | seed | concept | [] |
|
||||
| [[Подготовка к экзамену по Экономическому анализу]] | — | processing | moc | [finance, exam, study, economic-analysis] |
|
||||
| [[Поздравления с НГ]] | — | processing | lab | [] |
|
||||
| [[РИАС - база]] | РИАС - База | seed | knowledge | [mephi, study] |
|
||||
| [[Работа с API для проекта Attendance Mephi]] | — | seed | concept | [] |
|
||||
| [[РИАС - база]] | РИАС - База | seed | knowledge | [mephi, study] |
|
||||
| [[Сети Хопфилда и Хэмминга]] | Сети Хопфилда и Хэмминга | seed | concept | [] |
|
||||
| [[Сравнение хранилищ секретов]] | Сравнение Хранилищ Секретов | seed | knowledge | [il] |
|
||||
| [[УИР]] | УИР | seed | concept | [] |
|
||||
|
||||
Reference in New Issue
Block a user