Bulk rename/move files to '8' directories

Perform a bulk rename/move of many files and folders: paths previously prefixed with '01', '02', '03', '04', etc. were relocated to equivalent paths prefixed with '8'. Changes are path-only (R100 renames) and do not modify file contents; this reorganizes the repository structure.
This commit is contained in:
Dmitry
2026-06-09 22:25:32 +03:00
parent b9fa6eee41
commit 98c27fec85
249 changed files with 0 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
3.12
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
3.13
View File
File diff suppressed because one or more lines are too long
+8
View File
@@ -0,0 +1,8 @@
# %%
# %%
# %%
# %%
Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

+10
View File
@@ -0,0 +1,10 @@
[project]
name = "lab3"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
"jupyterlab>=4.5.6",
"matplotlib>=3.10.8",
]
+1742
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
View File
+6
View File
@@ -0,0 +1,6 @@
def main():
print("Hello from rias-mephi!")
if __name__ == "__main__":
main()
+12
View File
@@ -0,0 +1,12 @@
[project]
name = "rias-mephi"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
"jupyterlab>=4.5.6",
"matplotlib>=3.10.9",
"mplfinance>=0.12.10b0",
"pandas>=3.0.2",
]
+1955
View File
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,114 @@
* {
box-sizing: border-box;
}
body {
margin: 0;
/* отключить стандартные отступы браузера */
font-family: Arial, sans-serif;
line-height: 1.5;
color: #1f2933;
background: #f5f7fa;
}
.container {
max-width: 900px;
margin: 0;
/* внешний отступ */
padding: 0 16px;
/* внутренний отступ */
}
header {
background: #2b6a8a;
color: #fff;
padding: 16px 0;
}
main {
padding: 20px 0;
}
section,
.article-block {
background: #fff;
border: 1px solid #d6dee6;
border-radius: 8px;
padding: 14px;
margin-bottom: 14px;
}
h1,
h2 {
margin: 0 0 10px;
}
.nav-list {
list-style: none;
/* убрать маркеры */
padding: 0;
margin: 0;
display: flex;
/* флексбокс для горизонтального расположения */
flex-wrap: wrap;
gap: 8px;
/* расстояние между элементами */
}
.nav-list a,
a.inline-link {
color: #0b5f8a;
text-decoration: none;
}
.nav-list a:hover,
a.inline-link:hover {
text-decoration: underline;
}
.city-image {
width: 100%;
max-width: 460px;
display: block;
margin: 10px 0;
border: 1px solid #ccd6e0;
}
table {
width: 100%;
border-collapse: collapse;
/* объединение границ таблицы */
}
th,
td {
border: 1px solid #c9d3de;
padding: 8px;
text-align: left;
}
th {
background: #eaf1f7;
}
.positive {
color: #0d7a3a;
font-weight: 700;
}
.negative {
color: #b02a2a;
font-weight: 700;
}
footer {
padding: 12px 0 20px;
}
@media (max-width: 640px) {
.nav-list {
flex-direction: column;
/* вертикальное расположение */
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 MiB

@@ -0,0 +1,77 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Мурманск - главная</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<header>
<div class="container">
<h1>Мурманск</h1>
<p>Красивейший город за Полярным кругом</p>
</div>
</header>
<main class="container">
<section>
<h2>Навигация</h2>
<nav aria-label="Навигация по страницам">
<!-- метка для скринридеров -->
<ul class="nav-list">
<!-- маркированный список -->
<li><a href="index.html">Главная</a></li>
<li><a href="pages/page1.html">История</a></li>
<li><a href="pages/page2.html">Климат</a></li>
<li><a href="pages/page3.html">Население</a></li>
</ul>
</nav>
</section>
<section>
<h2>Кратко о городе</h2>
<p>Мурманск основан в 1916 году. Это крупнейший город мира за Полярным кругом и важный незамерзающий порт
России.</p>
<img class="city-image" src="img/murmansk.png" alt="Мурманск, порт и северный город">
<img class="city-image" src="img/murmansk2.png" alt="Мурманск, монумент Защитникам Советского Заполярья">
</section>
<section>
<h2>Основные сведения</h2>
<table>
<thead>
<!-- заголовок таблицы -->
<tr>
<th>Параметр</th>
<th>Значение</th>
</tr>
</thead>
<tbody>
<tr>
<td>Год основания</td>
<td>1916</td>
</tr>
<tr>
<td>Регион</td>
<td>Мурманская область</td>
</tr>
<tr>
<td>Население (2025)</td>
<td>264 339 человек</td>
</tr>
</tbody>
</table>
</section>
</main>
<footer>
<div class="container">
<p>Антипенко Д.А. С22-712</p>
</div>
</footer>
</body>
</html>
@@ -0,0 +1,47 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Мурманск - история</title>
<link rel="stylesheet" href="../css/style.css">
</head>
<body>
<header>
<div class="container">
<h1>Мурманск: история</h1>
</div>
</header>
<main class="container">
<section>
<h2>Навигация</h2>
<nav aria-label="Навигация">
<ul class="nav-list">
<li><a href="../index.html">Главная</a></li>
<li><a href="page1.html">История</a></li>
<li><a href="page2.html">Климат</a></li>
<li><a href="page3.html">Население</a></li>
</ul>
</nav>
</section>
<section class="article-block">
<h2>История города</h2>
<p>Мурманск основан в 1916 году как порт Романов-на-Мурмане. В 1917 году получил современное название.</p>
<p>Город быстро вырос благодаря незамерзающему порту. В годы Великой Отечественной войны Мурманск стал
важным центром приема северных конвоев.</p>
<img class="city-image" src="../img/murmansk.png" alt="Мурманск, морской порт">
</section>
</main>
<footer>
<div class="container">
<p><a class="inline-link" href="../index.html">Вернуться на главную</a></p>
</div>
</footer>
</body>
</html>
@@ -0,0 +1,116 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Мурманск - климат</title>
<link rel="stylesheet" href="../css/style.css">
</head>
<body>
<header>
<div class="container">
<h1>Мурманск: климат</h1>
</div>
</header>
<main class="container">
<section>
<h2>Навигация</h2>
<nav aria-label="Навигация">
<ul class="nav-list">
<li><a href="../index.html">Главная</a></li>
<li><a href="page1.html">История</a></li>
<li><a href="page2.html">Климат</a></li>
<li><a href="page3.html">Население</a></li>
</ul>
</nav>
</section>
<section class="article-block">
<h2>Климат города</h2>
<p>Климат Мурманска субарктический морской: зима долгая, лето короткое и прохладное.</p>
<img class="city-image" src="../img/murmansk2.png" alt="Мурманск, монумент Защитникам Советского Заполярья">
<table>
<caption>Климат Мурманска за последние 10 лет (2015-2024 гг)</caption>
<thead>
<tr>
<th>Показатель</th>
<th>Янв.</th>
<th>Февр.</th>
<th>Март</th>
<th>Апр.</th>
<th>Май</th>
<th>Июнь</th>
<th>Июль</th>
<th>Авг.</th>
<th>Сент.</th>
<th>Окт.</th>
<th>Нояб.</th>
<th>Дек.</th>
<th>Год</th>
</tr>
</thead>
<tbody>
<tr>
<td>Макс., °C</td>
<td>-8,3</td>
<td>-6,2</td>
<td>-1,4</td>
<td>2,9</td>
<td>9,3</td>
<td>14,4</td>
<td>18,4</td>
<td>16,4</td>
<td>11,7</td>
<td>3,6</td>
<td>-1,9</td>
<td>-5,3</td>
<td>4,5</td>
</tr>
<tr>
<td>Средн., °C</td>
<td>-10,2</td>
<td>-8,1</td>
<td>-4</td>
<td>0,2</td>
<td>5,9</td>
<td>10,6</td>
<td>14,5</td>
<td>13,0</td>
<td>9,0</td>
<td>2,1</td>
<td>-3,3</td>
<td>-7</td>
<td>1,9</td>
</tr>
<tr>
<td>Мин., °C</td>
<td>-12,1</td>
<td>-10,1</td>
<td>-6,7</td>
<td>-2,5</td>
<td>2,5</td>
<td>6,8</td>
<td>10,6</td>
<td>9,6</td>
<td>6,4</td>
<td>0,7</td>
<td>-4,6</td>
<td>-8,6</td>
<td>-0,7</td>
</tr>
</tbody>
</table>
</section>
</main>
<footer>
<div class="container">
<p><a class="inline-link" href="../index.html">Вернуться на главную</a></p>
</div>
</footer>
</body>
</html>
@@ -0,0 +1,151 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Мурманск - население</title>
<link rel="stylesheet" href="../css/style.css">
</head>
<body>
<header>
<div class="container">
<h1>Мурманск: население</h1>
</div>
</header>
<main class="container">
<section>
<h2>Навигация</h2>
<nav aria-label="Навигация">
<ul class="nav-list">
<li><a href="../index.html">Главная</a></li>
<li><a href="page1.html">История</a></li>
<li><a href="page2.html">Климат</a></li>
<li><a href="page3.html">Население</a></li>
</ul>
</nav>
</section>
<section class="article-block">
<h2>Динамика населения по актуальным данным</h2>
<p>По данным из таблицы видно общее снижение численности населения с отдельными годами роста.</p>
<table>
<caption>Население Мурманска: 2006-2025</caption>
<thead>
<tr>
<th>Год</th>
<th>Количество жителей</th>
<th>Изменение</th>
</tr>
</thead>
<tbody>
<tr>
<td>2006</td>
<td>321 000</td>
<td>-</td>
</tr>
<tr>
<td>2007</td>
<td>317 500</td>
<td class="negative">уменьшилось</td>
</tr>
<tr>
<td>2008</td>
<td>314 800</td>
<td class="negative">уменьшилось</td>
</tr>
<tr>
<td>2009</td>
<td>311 209</td>
<td class="negative">уменьшилось</td>
</tr>
<tr>
<td>2010</td>
<td>307 257</td>
<td class="negative">уменьшилось</td>
</tr>
<tr>
<td>2011</td>
<td>307 310</td>
<td class="positive">выросло</td>
</tr>
<tr>
<td>2012</td>
<td>305 034</td>
<td class="negative">уменьшилось</td>
</tr>
<tr>
<td>2013</td>
<td>302 468</td>
<td class="negative">уменьшилось</td>
</tr>
<tr>
<td>2014</td>
<td>299 148</td>
<td class="negative">уменьшилось</td>
</tr>
<tr>
<td>2015</td>
<td>305 236</td>
<td class="positive">выросло</td>
</tr>
<tr>
<td>2016</td>
<td>301 572</td>
<td class="negative">уменьшилось</td>
</tr>
<tr>
<td>2017</td>
<td>298 096</td>
<td class="negative">уменьшилось</td>
</tr>
<tr>
<td>2018</td>
<td>295 374</td>
<td class="negative">уменьшилось</td>
</tr>
<tr>
<td>2019</td>
<td>292 465</td>
<td class="negative">уменьшилось</td>
</tr>
<tr>
<td>2020</td>
<td>287 847</td>
<td class="negative">уменьшилось</td>
</tr>
<tr>
<td>2021</td>
<td>270 384</td>
<td class="negative">уменьшилось</td>
</tr>
<tr>
<td>2023</td>
<td>267 422</td>
<td class="negative">уменьшилось</td>
</tr>
<tr>
<td>2024</td>
<td>266 681</td>
<td class="negative">уменьшилось</td>
</tr>
<tr>
<td>2025</td>
<td>264 339</td>
<td class="negative">уменьшилось</td>
</tr>
</tbody>
</table>
</section>
</main>
<footer>
<div class="container">
<p><a class="inline-link" href="../index.html">Вернуться на главную</a></p>
</div>
</footer>
</body>
</html>
@@ -0,0 +1,389 @@
@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
/* font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; */
font-family: 'Roboto', 'Arimo', sans-serif;
line-height: 1.6;
color: #333;
background-color: #f4f4f4;
}
/* Навигация */
.navbar {
background-color: #2c3e50;
color: white;
padding: 1rem 2rem;
display: flex;
justify-content: space-between;
align-items: center;
position: sticky;
top: 0;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}
.logo {
font-size: 1.5rem;
font-weight: bold;
}
.nav-links {
list-style: none;
display: flex;
gap: 2rem;
}
.nav-links a {
color: white;
text-decoration: none;
transition: color 0.3s;
}
.nav-links a:hover {
color: #3498db;
}
/* Главная секция */
.hero {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 5rem 2rem;
text-align: center;
}
.hero-content h1 {
font-size: 3rem;
margin-bottom: 1rem;
}
.hero-content p {
font-size: 1.2rem;
margin-bottom: 2rem;
}
/* Кнопки */
.btn {
padding: 0.75rem 1.5rem;
border: none;
border-radius: 5px;
cursor: pointer;
font-size: 1rem;
transition: all 0.3s;
font-weight: bold;
}
.btn-primary {
background-color: #3498db;
color: white;
}
.btn-primary:hover {
background-color: #2980b9;
transform: translateY(-2px);
}
.btn-secondary {
background-color: #95a5a6;
color: white;
}
.btn-secondary:hover {
background-color: #7f8c8d;
}
.btn-success {
background-color: #27ae60;
color: white;
}
.btn-success:hover {
background-color: #229954;
}
/* О нас */
.about {
background-color: white;
padding: 4rem 2rem;
text-align: center;
}
.about h2 {
font-size: 2.5rem;
margin-bottom: 3rem;
color: #2c3e50;
}
.about-content {
display: flex;
gap: 2rem;
justify-content: center;
flex-wrap: wrap;
max-width: 1200px;
margin: 0 auto;
}
.about-card {
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
padding: 2rem;
border-radius: 8px;
flex: 0 1 300px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
transition: transform 0.3s;
}
.about-card:hover {
transform: translateY(-5px);
}
.about-card h3 {
font-size: 1.5rem;
margin-bottom: 1rem;
color: #2c3e50;
}
/* Возможности */
.features {
background-color: #ecf0f1;
padding: 4rem 2rem;
}
.features h2 {
font-size: 2.5rem;
text-align: center;
margin-bottom: 3rem;
color: #2c3e50;
}
.features h3 {
font-size: 1.8rem;
margin: 2rem 0 1rem 0;
color: #2c3e50;
}
/* Списки */
.list-container {
display: flex;
gap: 2rem;
margin-bottom: 2rem;
justify-content: center;
flex-wrap: wrap;
}
.list-column {
background: white;
padding: 1.5rem;
border-radius: 5px;
flex: 0 1 250px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.list-column h4 {
margin-bottom: 1rem;
color: #2c3e50;
}
.list-column ul,
.list-column ol {
margin-left: 1.5rem;
}
.list-column li {
margin-bottom: 0.5rem;
}
/* Таблица */
.data-table {
width: 100%;
max-width: 600px;
margin: 1.5rem auto;
border-collapse: collapse;
background: white;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
border-radius: 5px;
overflow: hidden;
}
.data-table thead {
background-color: #3498db;
color: white;
}
.data-table th,
.data-table td {
padding: 1rem;
text-align: left;
border-bottom: 1px solid #ddd;
}
.data-table tbody tr:nth-child(even) {
background-color: #f9f9f9;
}
.data-table tbody tr:hover {
background-color: #ecf0f1;
}
/* Цветовая палитра */
.color-palette {
display: flex;
gap: 1rem;
justify-content: center;
flex-wrap: wrap;
margin: 2rem 0;
}
.color-box {
width: 100px;
height: 100px;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
transition: transform 0.3s;
}
.color-box:hover {
transform: scale(1.1);
}
.color-box.primary {
background-color: #3498db;
}
.color-box.secondary {
background-color: #2c3e50;
}
.color-box.success {
background-color: #27ae60;
}
.color-box.warning {
background-color: #f39c12;
}
.color-box.danger {
background-color: #e74c3c;
}
/* Форма */
.contact {
background-color: white;
padding: 4rem 2rem;
}
.contact h2 {
font-size: 2.5rem;
text-align: center;
margin-bottom: 2rem;
color: #2c3e50;
}
.form {
max-width: 500px;
margin: 0 auto;
background-color: #f9f9f9;
padding: 2rem;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.form-group {
margin-bottom: 1.5rem;
display: flex;
flex-direction: column;
}
.form-group label {
margin-bottom: 0.5rem;
font-weight: bold;
color: #2c3e50;
}
.form-group input[type="text"],
.form-group input[type="email"],
.form-group textarea,
.form-group select {
padding: 0.75rem;
border: 1px solid #ddd;
border-radius: 5px;
font-size: 1rem;
font-family: inherit;
transition: border-color 0.3s;
}
.form-group input[type="text"]:focus,
.form-group input[type="email"]:focus,
.form-group textarea:focus,
.form-group select:focus {
outline: none;
border-color: #3498db;
box-shadow: 0 0 5px rgba(52, 152, 219, 0.3);
}
.form-group.checkbox {
flex-direction: row;
align-items: center;
gap: 0.5rem;
}
.form-group.checkbox input[type="checkbox"] {
width: 20px;
height: 20px;
cursor: pointer;
}
.form-group.checkbox label {
margin-bottom: 0;
}
.form .btn {
margin-right: 1rem;
}
/* Подвал */
.footer {
background-color: #2c3e50;
color: white;
text-align: center;
padding: 2rem;
}
/* Адаптивность */
@media (max-width: 768px) {
.navbar {
flex-direction: column;
gap: 1rem;
}
.nav-links {
flex-direction: column;
gap: 1rem;
}
.hero-content h1 {
font-size: 2rem;
}
.about-content {
flex-direction: column;
}
.list-container {
flex-direction: column;
}
.color-palette {
gap: 0.5rem;
}
.color-box {
width: 80px;
height: 80px;
}
}
+166
View File
@@ -0,0 +1,166 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Демонстрация HTML и CSS</title>
<link rel="stylesheet" href="css/main.css">
<style>
@import url('https://fonts.googleapis.com/css2?family=Arimo:ital,wght@0,400..700;1,400..700&display=swap');
</style>
</head>
<body>
<!-- Навигация -->
<nav class="navbar">
<h1 class="logo">MyWebsite</h1>
<ul class="nav-links">
<li><a href="#home">Главная</a></li>
<li><a href="#about">О нас</a></li>
<li><a href="#features">Возможности</a></li>
<li><a href="#contact">Контакт</a></li>
</ul>
</nav>
<!-- Главная секция -->
<section id="home" class="hero">
<div class="hero-content">
<h1>Добро пожаловать!</h1>
<p>Это демонстрация различных HTML элементов и CSS свойств</p>
<button class="btn btn-primary">Узнать больше</button>
</div>
</section>
<!-- О нас -->
<section id="about" class="about">
<h2>О сайте</h2>
<div class="about-content">
<div class="about-card">
<h3>📝 Текст</h3>
<p>Это обычный параграф демонстрирует стиль текста с использованием CSS свойств как color, font-size и
line-height.</p>
</div>
<div class="about-card">
<h3>🎨 Дизайн</h3>
<p>Рассказывает о использовании цветов, отступов, границ и других стилей для создания интересного
визуального оформления.</p>
</div>
<div class="about-card">
<h3>📦 Макет</h3>
<p>Демонстрирует Flexbox layout для создания гибкого и адаптивного дизайна страницы на различных
экранах.</p>
</div>
</div>
</section>
<!-- Возможности -->
<section id="features" class="features">
<h2>Возможности</h2>
<h3>Типы списков</h3>
<div class="list-container">
<div class="list-column">
<h4>Неупорядоченный список:</h4>
<ul>
<li>Первый элемент</li>
<li>Второй элемент</li>
<li>Третий элемент</li>
</ul>
</div>
<div class="list-column">
<h4>Упорядоченный список:</h4>
<ol>
<li>Шаг первый</li>
<li>Шаг второй</li>
<li>Шаг третий</li>
</ol>
</div>
</div>
<!-- Таблица -->
<h3>Таблица данных</h3>
<table class="data-table">
<thead>
<tr>
<th>Имя</th>
<th>Возраст</th>
<th>Город</th>
</tr>
</thead>
<tbody>
<tr>
<td>Иван</td>
<td>25</td>
<td>Москва</td>
</tr>
<tr>
<td>Мария</td>
<td>30</td>
<td>Санкт-Петербург</td>
</tr>
<tr>
<td>Петр</td>
<td>28</td>
<td>Казань</td>
</tr>
</tbody>
</table>
<!-- Цветовая палитра -->
<h3>Цветовая палитра</h3>
<div class="color-palette">
<div class="color-box primary"></div>
<div class="color-box secondary"></div>
<div class="color-box success"></div>
<div class="color-box warning"></div>
<div class="color-box danger"></div>
</div>
</section>
<!-- Форма -->
<section id="contact" class="contact">
<h2>Контактная форма</h2>
<form class="form">
<div class="form-group">
<label for="name">Имя:</label>
<input type="text" id="name" name="name" placeholder="Введите ваше имя" required>
</div>
<div class="form-group">
<label for="email">Email:</label>
<input type="email" id="email" name="email" placeholder="Введите вашу почту" required>
</div>
<div class="form-group">
<label for="message">Сообщение:</label>
<textarea id="message" name="message" rows="5" placeholder="Напишите ваше сообщение"></textarea>
</div>
<div class="form-group">
<label for="country">Страна:</label>
<select id="country" name="country">
<option>Россия</option>
<option>Беларусь</option>
<option>Казахстан</option>
<option>Украина</option>
</select>
</div>
<div class="form-group checkbox">
<input type="checkbox" id="agree" name="agree">
<label for="agree">Я согласен с условиями</label>
</div>
<button type="submit" class="btn btn-success">Отправить</button>
<button type="reset" class="btn btn-secondary">Очистить</button>
</form>
</section>
<!-- Подвал -->
<footer class="footer">
<p>&copy; 2026 MyWebsite. Все права защищены.</p>
</footer>
</body>
</html>
@@ -0,0 +1 @@
3.12
@@ -0,0 +1,22 @@
#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys
def main():
"""Run administrative tasks."""
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mephi_app.settings')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
if __name__ == '__main__':
main()
@@ -0,0 +1,16 @@
"""
ASGI config for mephi_app project.
It exposes the ASGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/6.0/howto/deployment/asgi/
"""
import os
from django.core.asgi import get_asgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mephi_app.settings')
application = get_asgi_application()
@@ -0,0 +1,107 @@
from pathlib import Path
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/6.0/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'django-insecure-#pk6j+5iy8gxi!4o2ll&aci==cbj4e)kxx7f%7u8!#s^o2qb61'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'polls.apps.PollsConfig',
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'mephi_app.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
WSGI_APPLICATION = 'mephi_app.wsgi.application'
# Database
# https://docs.djangoproject.com/en/6.0/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
# Password validation
# https://docs.djangoproject.com/en/6.0/ref/settings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
# Internationalization
# https://docs.djangoproject.com/en/6.0/topics/i18n/
LANGUAGE_CODE = 'ru-ru'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_TZ = True
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/6.0/howto/static-files/
STATIC_URL = 'static/'
@@ -0,0 +1,22 @@
"""
URL configuration for mephi_app project.
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/6.0/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: path('', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]
@@ -0,0 +1,7 @@
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mephi_app.settings')
application = get_wsgi_application()
@@ -0,0 +1,20 @@
from django.contrib import admin
class ChoiceInline(admin.TabularInline):
model = Choice
extra = 2
admin.site.register(Choice)
# Register your models here.
class QuestionAdmin(admin.ModelAdmin):
list_display = ('question_text', 'pub_date')
list_display_links = ('question_text', 'pub_date')
search_fields = ('question_text',)
admin.site.register(Question, QuestionAdmin)
class ChoiceAdmin(admin.ModelAdmin):
list_display = ('choice_text', 'question', 'votes')
list_display_links = ('choice_text', 'question')
search_fields = ('choice_text',)
admin.site.register(Choice, ChoiceAdmin)
@@ -0,0 +1,5 @@
from django.apps import AppConfig
class PollsConfig(AppConfig):
name = 'polls'
@@ -0,0 +1,22 @@
# Generated by Django 6.0.4 on 2026-04-08 10:39
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Question',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('question_text', models.CharField(max_length=200, verbose_name='Вопрос')),
('pub_date', models.DateTimeField(verbose_name='Дата публикации')),
],
),
]
@@ -0,0 +1,23 @@
# Generated by Django 6.0.4 on 2026-04-08 10:43
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('polls', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='Choice',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('choice_text', models.CharField(max_length=200, verbose_name='Ответ')),
('votes', models.IntegerField(default=0, verbose_name='Количество голосов')),
('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='polls.question')),
],
),
]
@@ -0,0 +1,12 @@
from django.db import models
# Create your models here.
class Question(models.Model):
question_text = models.CharField(verbose_name='Вопрос', max_length=200)
pub_date = models.DateTimeField(verbose_name='Дата публикации')
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(verbose_name='Ответ', max_length=200)
votes = models.IntegerField(verbose_name='Количество голосов', default=0)
@@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.
@@ -0,0 +1,8 @@
from djano.urls import path
urlpatterns = [
# path('', views.index, name='index'),
# path('<int:question_id>/', views.detail, name='detail'),
# path('<int:question_id>/results/', views.results, name='results'),
# path('<int:question_id>/vote/', views.vote, name='vote'),
]
@@ -0,0 +1,3 @@
from django.shortcuts import render
# Create your views here.
@@ -0,0 +1,9 @@
[project]
name = "web-django"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
"django>=6.0.4",
]
+55
View File
@@ -0,0 +1,55 @@
version = 1
revision = 3
requires-python = ">=3.12"
[[package]]
name = "asgiref"
version = "3.11.1"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/63/40/f03da1264ae8f7cfdbf9146542e5e7e8100a4c66ab48e791df9a03d3f6c0/asgiref-3.11.1.tar.gz", hash = "sha256:5f184dc43b7e763efe848065441eac62229c9f7b0475f41f80e207a114eda4ce", size = 38550, upload-time = "2026-02-03T13:30:14.33Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/5c/0a/a72d10ed65068e115044937873362e6e32fab1b7dce0046aeb224682c989/asgiref-3.11.1-py3-none-any.whl", hash = "sha256:e8667a091e69529631969fd45dc268fa79b99c92c5fcdda727757e52146ec133", size = 24345, upload-time = "2026-02-03T13:30:13.039Z" },
]
[[package]]
name = "django"
version = "6.0.4"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "asgiref" },
{ name = "sqlparse" },
{ name = "tzdata", marker = "sys_platform == 'win32'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/60/b9/4155091ad1788b38563bd77a7258c0834e8c12a7f56f6975deaf54f8b61d/django-6.0.4.tar.gz", hash = "sha256:8cfa2572b3f2768b2e84983cf3c4811877a01edb64e817986ec5d60751c113ac", size = 10907407, upload-time = "2026-04-07T13:55:44.961Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/e9/47/3d61d611609764aa71a37f7037b870e7bfb22937366974c4fd46cada7bab/django-6.0.4-py3-none-any.whl", hash = "sha256:14359c809fc16e8f81fd2b59d7d348e4d2d799da6840b10522b6edf7b8afc1da", size = 8368342, upload-time = "2026-04-07T13:55:37.999Z" },
]
[[package]]
name = "sqlparse"
version = "0.5.5"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/90/76/437d71068094df0726366574cf3432a4ed754217b436eb7429415cf2d480/sqlparse-0.5.5.tar.gz", hash = "sha256:e20d4a9b0b8585fdf63b10d30066c7c94c5d7a7ec47c889a2d83a3caa93ff28e", size = 120815, upload-time = "2025-12-19T07:17:45.073Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/49/4b/359f28a903c13438ef59ebeee215fb25da53066db67b305c125f1c6d2a25/sqlparse-0.5.5-py3-none-any.whl", hash = "sha256:12a08b3bf3eec877c519589833aed092e2444e68240a3577e8e26148acc7b1ba", size = 46138, upload-time = "2025-12-19T07:17:46.573Z" },
]
[[package]]
name = "tzdata"
version = "2026.1"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/19/f5/cd531b2d15a671a40c0f66cf06bc3570a12cd56eef98960068ebbad1bf5a/tzdata-2026.1.tar.gz", hash = "sha256:67658a1903c75917309e753fdc349ac0efd8c27db7a0cb406a25be4840f87f98", size = 197639, upload-time = "2026-04-03T11:25:22.002Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/b0/70/d460bd685a170790ec89317e9bd33047988e4bce507b831f5db771e142de/tzdata-2026.1-py2.py3-none-any.whl", hash = "sha256:4b1d2be7ac37ceafd7327b961aa3a54e467efbdb563a23655fbfe0d39cfc42a9", size = 348952, upload-time = "2026-04-03T11:25:20.313Z" },
]
[[package]]
name = "web-django"
version = "0.1.0"
source = { virtual = "." }
dependencies = [
{ name = "django" },
]
[package.metadata]
requires-dist = [{ name = "django", specifier = ">=6.0.4" }]
@@ -0,0 +1,277 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "5ffc18fc",
"metadata": {},
"source": [
"# Генераторы массивов"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "17f0549b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]\n",
"{0, 1, 2}\n",
"(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)\n"
]
}
],
"source": [
"\n",
"n = 20\n",
"a = [i for i in range(n)]\n",
"b = {i%3 for i in range(n)}\n",
"c = tuple(i for i in range(n))\n",
"print(a)\n",
"print(b)\n",
"print(c)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f64d6b65",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[62, 64, 58, 6, 28, 8, 3, 4, 8, 2, 94, 65, 4, 23, 26, 38, 67, 4, 72, 82]\n"
]
}
],
"source": [
"# Модуль random\n",
"import random as rd\n",
"a = [rd.randint(0, 100) for i in range(n)]\n",
"print(a)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "a03afa9b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81, 10: 100, 11: 121, 12: 144, 13: 169, 14: 196, 15: 225, 16: 256, 17: 289, 18: 324, 19: 361}\n"
]
}
],
"source": [
"# Генерация словаря\n",
"d = {i: i**2 for i in range(n)}\n",
"print(d)"
]
},
{
"cell_type": "markdown",
"id": "1523bfb5",
"metadata": {},
"source": [
"# Сортировка"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "0e5b7a6e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[-98, -96, -92, -60, -49, -42, -32, -18, -10, -10, 42, 53, 55, 64, 73, 75, 78, 81, 81, 98]\n",
"[98, 81, 81, 78, 75, 73, 64, 55, 53, 42, -10, -10, -18, -32, -42, -49, -60, -92, -96, -98]\n",
"[-10, -10, -18, -32, 42, -42, -49, 53, 55, -60, 64, 73, 75, 78, 81, 81, -92, -96, -98, 98]\n",
"[-98, -96, -92, -60, -49, -42, -32, -18, -10, -10, 42, 53, 55, 64, 73, 75, 78, 81, 81, 98]\n"
]
}
],
"source": [
"# sort и sorted\n",
"\n",
"a = [rd.randint(-100, 100) for i in range(n)]\n",
"\n",
"b = sorted(a) # Возвращает новый отсортированный список\n",
"print(b)\n",
"\n",
"c = sorted(a, reverse=True) # Сортирует в обратном порядке\n",
"print(c)\n",
"\n",
"e = sorted(a, key=lambda x: abs(x)) # Сортирует по ключу, в данном случае по абсолютному значению\n",
"print(e)\n",
"\n",
"a.sort() # Сортирует список на месте, ничего не возвращает\n",
"print(a)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "9b186915",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[-98, -96, -92, -60, -42, -32, -18, -10, -10, 42, 64, 78, 98]\n"
]
}
],
"source": [
"# метод filter\n",
"\n",
"f = filter(lambda x: x % 2 == 0, a) # Фильтрует элементы, оставляя только четные\n",
"print(list(f))"
]
},
{
"cell_type": "markdown",
"id": "8966f584",
"metadata": {},
"source": [
"# Операции со строками"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "886e6200",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['fefef', '', '', '', '', 'egege', 'wpdwpfwof', '', '', '', 'eijoifwmfkwmfl', '', '', '', 'dwpdwpekwp']\n",
"['fefef', 'egege', 'wpdwpfwof', 'eijoifwmfkwmfl', 'dwpdwpekwp']\n",
"['Fefef', 'Egege', 'Wpdwpfwof', 'Eijoifwmfkwmfl', 'Dwpdwpekwp']\n",
"Fefef Egege Wpdwpfwof Eijoifwmfkwmfl Dwpdwpekwp\n"
]
}
],
"source": [
"s = \"fefef egege wpdwpfwof eijoifwmfkwmfl dwpdwpekwp\"\n",
"s1 = s.split(' ') # Разделяет строку по пробелам и преовращает в список слов\n",
"print(s1)\n",
"\n",
"s2 = list(filter(lambda x: x, s1))\n",
"print(s2)\n",
"\n",
"s3 = [x.capitalize() for x in s2] # Преобразует каждое слово в строку с заглавной первой буквой\n",
"print(s3)\n",
"\n",
"s4 = ' '.join(s3) # Соединяет элементы списка в строку, используя ' ' в качестве разделителя\n",
"print(s4)\n",
"# print(' '.join(['a', 'b', 'c'])) # Соединяет элементы списка в строку, используя пробел в качестве разделителя"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "41ab72cf",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Hello, World!\n"
]
}
],
"source": [
"st = ' Hello, World! '\n",
"print(st.strip()) # Удаляет пробелы в начале и конце строки"
]
},
{
"cell_type": "markdown",
"id": "7ff78577",
"metadata": {},
"source": [
"# Распаковка и запаковка"
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "d39d6026",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3.0\n"
]
}
],
"source": [
"def average(*nums):\n",
" return sum(nums) / len(nums) if nums else None\n",
"\n",
"print(average(1, 2, 3, 4, 5)) # Вывод: 3.0"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e3997fbd",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<a href=\"https://ada-dev.ru\" target=\"_blank\"></a>\n"
]
}
],
"source": [
"# Функция, которая принимает первым аргументом тег, а затем именованные параметры, и возвращает строку в виде HTML-тега с этими параметрами\n",
"def create_html(tag, **attributes):\n",
" attr_str = ' '.join(f'{key}=\"{value}\"' for key, value in attributes.items())\n",
" return f'<{tag} {attr_str}></{tag}>'\n",
"\n",
"print(create_html('a', href='https://ada-dev.ru', target='_blank'))"
]
}
],
"metadata": {
"kernelspec": {
"display_name": ".venv",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.14.3"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
@@ -0,0 +1,3 @@
# print('Test')
# Генераторы массивов
Binary file not shown.
Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More