diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..f68d10996 --- /dev/null +++ b/.gitignore @@ -0,0 +1,29 @@ +### IntelliJ IDEA ### +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 000000000..d2f3b4131 --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 000000000..a55e7a179 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/dbnavigator.xml b/.idea/dbnavigator.xml new file mode 100644 index 000000000..e5da8d85b --- /dev/null +++ b/.idea/dbnavigator.xml @@ -0,0 +1,408 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 000000000..423dac07a --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 000000000..226afc970 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 000000000..8ed91a956 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 000000000..94a25f7f4 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 000000000..cb417dbe1 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + { + "associatedIndex": 2 +} + + + + + + + + + + + + + + + + + + + 1725636818213 + + + + + + + \ No newline at end of file diff --git a/WEB.iml b/WEB.iml new file mode 100644 index 000000000..c90834f2d --- /dev/null +++ b/WEB.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src/HTML/about_buttons.html b/src/HTML/about_buttons.html new file mode 100644 index 000000000..fcc2aff81 --- /dev/null +++ b/src/HTML/about_buttons.html @@ -0,0 +1,153 @@ + + + + + About button + + +

Несколько историй

+ История первая
+ История вторая
+ +
+

История первая

+

Давняя и неизменная часть истории костюма - пуговица - это и "скромная статистка", и яркая деталь на + страницах многих произведений художественной литературы, отражающая не только веяния моды, но и + социальное положение, вкус, воспитание.

+ +

Греческая загадка

+ +

В Европе первые пуговицы появились в IV веке до н.э. у греческих воинов. Видимо, возникла нужда в + чем-то, чем можно было (кроме булавок) скреплять части одежды. Кожаные ремни на их "униформе" застегивались + спереди на несколько металлических пуговиц на ножке. Среди археологических находок древнегреческого + искусства с IV века до н.э. по I век н.э. попадаются пуговицы из золота.

+

Древние греки умели точно и основательно придумывать всяческим предметам и явлениям названия, которым + суждено было сохраниться по сей день. Для пуговицы тоже существовало какое-то слово, но русский язык оно + миновало. Слово "пуговица" попало на Русь с Востока, пришло оно из древнеиндийского языка и буквально + означает "ком, куча, масса". До русских модников пуговица, которую тогда называли "пугвицой", "докатилась" + в конце XV - начале XVI века.

+

До знаменитой петровской реформы костюма и приказа носить иностранное платье русские бояре и боярыни + не скупясь платили золотых дел мастерам и иностранным купцам большие деньги за пуговицы из драгоценных + металлов со вставками из бирюзы, жемчуга, кораллов, эмалей. Очень модными были круглые, похожие на шарики + пуговицы с петелькой для пришивания - их называли кляпышами.

+ +

Пуговичный бал

+ +

Пуговицы, словно призраки, кочевали по перепутьям европейской моды начиная с конца XIII века, исчезая + на несколько веков, пока XVII век, с его рационализмом и легким отношением к новациям, не вспомнил о + пуговицах как о случайно забытом и удобном изобретении. В XVIII столетии, которое и без того бурлило + блеском шелков, пеной кружев и игрой бриллиантов, состоялся их парадный выход. Сотни мануфактур и + отдельных мастеров во многих странах, в большинстве своем в Париже, шили, монтировали, вытачивали, + штамповали, гранили и вырезали пуговицы. Наряду с великолепными образцами из золота, серебра и + драгоценных камней начали появляться обтяжные пуговицы, которым предстояло стать преобладающими в + следующем столетии. Их изготовляли в тон одежде, обтягивая деревянную или костяную пуговицу на ножке. + Пуговицы со сквозными отверстиями вошли в моду много позже.

+

Особое место занимают позументные пуговицы. Их шили из золотых или серебряных нитей, но чаще из + мишурных (хлопковую или льняную нить обкручивали золотой или серебряной фольгой). Подобные пуговички + имели форму бутонов шиповника. Ими (как и металлическими той же формы и цвета) украшали русские сарафаны. + Яркие ткани, золотая дорожка пуговок являли собой картину красочного народного костюма. XVIII век + обогатил художественные ремесла Европы вышивками шелковой гладью и появлением белоснежного фарфора. + Все модные сюжеты - букеты, гирлянды, рокайль, цветы и птицы ловко и изящно умещались на поверхности + пуговиц в виде безупречных стежков или миниатюр. Пуговицы с такими картинками были естественным звеном + в нарядной веренице украшений аристократии.

+

Способность пуговиц концентрировать на себе внимание, выполняя не только функцию застежек, создавала + особый композиционный элемент в костюме. Это прежде всего отметили ювелиры, изготовлявшие для парадных + туалетов, преимущественно мужских, пуговицы очень высокой стоимости, используя дорогие камни и сложные + техники.

+ +

В центре скандала

+ +

В первые десятилетия XIX века на рубашках и жилетах щеголей начали переливаться всевозможными цветами + пуговицы из "простых" (по тем временам) камней - коралла, аметиста, сердолика, горного хрусталя, граната. + Началось увлечение жилетами. Их носили по 2-3 сразу, так, чтобы один был виден из-под другого. К ним + пришивали мелкие, разные по форме и цвету пуговицы из самоцветов. Получалась очень веселая, искрящаяся + затея.

+

В женскую моду пуговицы входили значительно медленнее. Причины коренились в прихотях моделей платьев, + в общественной нравственности, которая отвергала застежки спереди, тем более подчеркнутые пуговицами. + Споры обострились, когда в конце XIX века мода ввела в женский гардероб юбку и блузку. Немецкий историк + Э.Фукс называл блузку "нравственным лицемерием". Он писал о блузке: + "...Она решила тайну полуодетости... Теперь мужчина мог совершенно беспрепятственно делать всякие для + него столь интересные... наблюдения. Блузка застегивается на спине, так что при всем желании, даже со + стороны дамы, ничего не поделаешь". Упреки женщинам, что они выглядят "чересчур эротично", возымели свое + действие - застежки вплоть до начала 1920-х годов в большинстве своем были сзади. Обилие мелких пуговок, + обтяжных и прочих видов, - отличительная особенность тех лет. Так из женского костюма стали исчезать + шнуровки, тесемки и значительно поубавились крючки.

+

В начале XX столетия придумали металлическую кнопку, которую часто прикрывали снаружи декоративной + пуговицей. Решающей причиной появления все новых по форме, цвету, рисунку и величине пуговиц была + невиданная до той поры быстрота смены моды. Виды пуговиц стали зависеть от способов механизации и + усовершенствования всевозможных приспособлений для их изготовления. Появилась машинная печать. Изменились + материалы. В начале XX столетия были изобретены пластические массы, успешно заменившие ценную природную + кость, черепаховый панцирь, рог.

+

Пуговица, будучи существенной деталью одежды - женской, мужской, детской, униформенной, - + соответствовала эстетическим претензиям общества и социальному заказу. Если представить себе + производство пуговиц в виде некоей планеты, то значительную ее часть будут занимать пуговицы для + военных мундиров и форменных костюмов. Такие изделия изготавливались в основном из металла, для их + производства всегда применялся штамп с той или иной символикой. Именно этот вид пуговичного "моря" + является наиболее познавательным, очень точно увязанным с историческими событиями и государственным + устройством разных стран. Их датировка всегда помогала историкам и искусствоведам не только в изучении + костюма, но и в определении судеб многих известных людей, чьи портреты или фотографии сохранились + до нашего времени. Зная место службы военного человека или государственного чиновника, можно по + архивным документам установить его имя, а затем и некоторые периоды его жизни.

+ +

Вечные спутники

+ +

Дешевые материалы, ставшие в XX веке основными для производства пуговиц, открыли новую сторону + давнего ремесла по изготовлению имитаций из стекла и металла. Такие пуговицы уже сто лет прекрасно + сосуществуют с образцами рукотворными, имеющими художественное значение, и с таким видом застежек, + которые хоть и были в большом ходу не так давно, ныне почти забыты, - это запонки: ими скрепляли + манжеты и воротнички на мужских рубашках. Не случайно во многих домах есть заветные коробочки, + полные пуговиц. Их привлекательный вид вызывает детское чувство игрового азарта.

+

В советской моде 1930-1960-х годов пуговицам отводилось очень важное место. Объяснялось это + ограниченной возможностью шить новую одежду. В основном люди переделывали и комбинировали старые вещи. + Особенно это касалось женской и детской одежды. Поэтому оставшиеся от лучших времен пуговицы, + перешиваемые с изношенной одежды на новую, вносили ноту элегантности, символизируя преемственность + с ушедшей культурой шитья, которая через случайно сохранившиеся вещи витала над скудным советским + бытом. Очень популярны были крупные перламутровые пуговицы различной конфигурации белого и серо-голубого + цвета, которые перешивали сначала на летние легкие пальто из чесучи (в конце 1930-х годов), а + потом - на платья и костюмы из самых разных тканей. Появление в конце 1950-х годов в магазинах + больших городов пестрых и блестящих пуговиц из Восточной Германии и Чехословакии вызвало восторг, + ведь отечественные пуговицы были темных тонов и незатейливого рисунка. За красивыми чешскими + пуговицами буквально охотились, их покупали впрок, поскольку ежегодные смены моды практически + не касались большинства людей.

+

История маленьких приспособлений для скрепления деталей костюма - это занимательный рассказ о + выдумке, мастерстве, фантазии портных и прочих мастеров. В самой природе пуговиц есть какая-то искорка, + вызов, способность организовать костюм, подчиняя его единому стилю. Многие художественные направления + не пренебрегли пуговицами, оставив нам прекрасные свидетельства творческого вдохновения их + создателей.

+ +

© Марина Колева

+
+ +
+

История вторая

+

История пуговицы началась семьсот лет назад. Но имени человека, который ее придумал, история не + сохранила. Интересно, что женщины по началу абсолютно игнорировали это изобретение и продолжали + пользоваться булавками, пуговицы интересовали только мужчин.

+

Так как в те времена мужская одежда была не менее яркой, чем женская пуговицы делали из дорогих + металлов, украшали драгоценными камнями. А на мужское платье пришивалось так много пуговиц, больше + нескольких тысяч, что оно становилось очень тяжелым. История помнит, что французский король Франциск + заказал для отделки своего бархатного костюма 13 600 золотых пуговиц.

+

По пуговицам определялось положение человека. Пуговицы из золота и серебра делали для дворян, + из недрагоценных материалов - для солдат и слуг, из стекла и дерева для простых людей.

+

«Пуговица» в русском языке имеет то же корень, что и слово «пугать». И ученые считают, + что это совпадение не случайно, она служила у нашего народа защитой от темных сил, была оберегом, + отпугивающим зло. Для «большей силы» в них подкладывали еще и кусочек металла или круглый камешек, + который при движении издавал звук, похожий на звон бубенца.

+

За столетия каких только пуговиц не было. Многие из них стали произведением искусств и сейчас + хранятся в музеях. А современных галантерейных магазинах в продаже потрясающий выбор пуговиц!

+ +

Это интересно

+ +

На мужской одежде пуговицы расположены справа, а на женской слева. Считается, что во времена + внедрения пуговиц мужчины одевались сами, а женщин одевали служанки – поэтому для них пуговицы + пришивали в зеркальном отражении.

+

Указ Петра I, предписывающий пришивать оловянные пуговицы к обшлагам рукавов солдатских мундиров + с внешней стороны был полон тайного смысла: пуговицы не позволяли солдатам по привычке после еды + вытирать рукавом рот и нос. Так он отучил солдат от дурной привычки, портившей мундирное сукно.

+

Найти пуговицу до сих пор считается хорошей приметой, а если дорогу вам перебежала черная кошка, + достаточно дотронуться до пуговицы – и можно смело идти вперед.

+ +

Ссылка на источник

+
+ + diff --git a/src/HTML/block_1.css b/src/HTML/block_1.css new file mode 100644 index 000000000..b71d2809c --- /dev/null +++ b/src/HTML/block_1.css @@ -0,0 +1,26 @@ +#header { + background-color:green; + color:white; + text-align:center; + padding:3px; +} +#nav { + line-height:30px; + background-color:silver; + height:300px; + width:270px; + float:left; + padding:5px; +} +#section { + width:350px; + float:left; + padding:10px; +} +#footer { + background-color:green; + color:white; + clear:both; + text-align:center; + padding:3px; +} \ No newline at end of file diff --git a/src/HTML/block_1.html b/src/HTML/block_1.html new file mode 100644 index 000000000..80cd677af --- /dev/null +++ b/src/HTML/block_1.html @@ -0,0 +1,35 @@ + + + + + + + + + + +
+

Санкт-Петербургский монетный двор

+

+Санкт-Петербургский монетный двор Гознака - +старейшее действующее предприятие по выпуску монетно-медальной продукции в России. +

+

+За почти три столетия производственной деятельности накоплен уникальный опыт, +который успешно используется при изготовлении изделий. +

+
+ + + + + \ No newline at end of file diff --git a/src/HTML/block_2.css b/src/HTML/block_2.css new file mode 100644 index 000000000..295d6d698 --- /dev/null +++ b/src/HTML/block_2.css @@ -0,0 +1,26 @@ +header { + background-color:green; + color:white; + text-align:center; + padding:3px; +} +nav { + line-height:30px; + background-color:silver; + height:300px; + width:270px; + float:left; + padding:5px; +} +section { + width:350px; + float:left; + padding:10px; +} +footer { + background-color:green; + color:white; + clear:both; + text-align:center; + padding:3px; +} \ No newline at end of file diff --git a/src/HTML/block_2.html b/src/HTML/block_2.html new file mode 100644 index 000000000..ce57ca6ab --- /dev/null +++ b/src/HTML/block_2.html @@ -0,0 +1,36 @@ + + + + + + + +
+

Монетный двор

+
+ + + +
+

Санкт-Петербургский монетный двор

+

+Санкт-Петербургский монетный двор Гознака - +старейшее действующее предприятие по выпуску монетно-медальной продукции в России. +

+

+За почти три столетия производственной деятельности накоплен уникальный опыт, +который успешно используется при изготовлении изделий. +

+
+ + + + + \ No newline at end of file diff --git a/src/HTML/classification.html b/src/HTML/classification.html new file mode 100644 index 000000000..1bedf4b51 --- /dev/null +++ b/src/HTML/classification.html @@ -0,0 +1,36 @@ + + + + + Маркетинговые списки + + +

Разновидности пуговиц:

+ +

По форме пуговицы могут быть:

+
    +
  1. Квадратные;
  2. +
  3. Треугольные;
  4. +
  5. Цилиндрические;
  6. +
  7. Шарообразные;
  8. +
  9. Другие.
  10. +
+

Пуговицы могут выполнять следующие функции:

+
+
Утилитарная
+
– застежка на одежде, аксессуаре и т.п.;
+
Декоративная
+
- украшение;
+
Магическая
+
- выступает в качестве оберега или талисмана, отпугивающего враждебные силы;
+
Информативная
+
- опознавательный знак принадлежности к определенной группе, профессии, роду войск (сил) и т. д.
+
+ Вернуться на главную страницу + + \ No newline at end of file diff --git a/src/HTML/code.html b/src/HTML/code.html new file mode 100644 index 000000000..34f03368c Binary files /dev/null and b/src/HTML/code.html differ diff --git a/src/HTML/ex1.html b/src/HTML/ex1.html new file mode 100644 index 000000000..e90aaabd4 Binary files /dev/null and b/src/HTML/ex1.html differ diff --git a/src/HTML/ex2.html b/src/HTML/ex2.html new file mode 100644 index 000000000..a641908eb Binary files /dev/null and b/src/HTML/ex2.html differ diff --git a/src/HTML/ex3.html b/src/HTML/ex3.html new file mode 100644 index 000000000..2cfae1747 Binary files /dev/null and b/src/HTML/ex3.html differ diff --git a/src/HTML/ex4.html b/src/HTML/ex4.html new file mode 100644 index 000000000..22a46bb2d --- /dev/null +++ b/src/HTML/ex4.html @@ -0,0 +1,18 @@ + + + + + Links + + + + +

This is a link:

+ Yandex
+Отправьте мне письмо + + diff --git a/src/HTML/ex5.html b/src/HTML/ex5.html new file mode 100644 index 000000000..9fce8077c --- /dev/null +++ b/src/HTML/ex5.html @@ -0,0 +1,39 @@ + + + + + Работа с таблицами + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Список студентов
ФамилияИмяОтчествоГород
ПупкинВасилийПетровичМосква
ФеофанВасильевич
ШашкинСидорБогдановичСанкт-Петербург
Лютикова Аделина ФедоровнаТверь
+ + + diff --git a/src/HTML/ex6.html b/src/HTML/ex6.html new file mode 100644 index 000000000..c3bbd5a60 --- /dev/null +++ b/src/HTML/ex6.html @@ -0,0 +1,14 @@ + + + + + T_T + + + + + + \ No newline at end of file diff --git a/src/HTML/ex7.html b/src/HTML/ex7.html new file mode 100644 index 000000000..64c733399 --- /dev/null +++ b/src/HTML/ex7.html @@ -0,0 +1,77 @@ + + + + + Test Form + + +

Основные элементы форм:

+
+ Простое текстовое поле:
+ Поле длинной максимум 5 символов:
+ Многострочное текстовое поле:
+
+ Поле для ввода пароля:
+ Скрытое поле:
+ +
+ +
+ Работа с цветом:
+ Работа с датой:
+ Проверка e-mail:
+ Проверка чисел:
+ Работа с днем недели:
+ Проверка URL:
+ + +
+ +
+ Введите данные:
+
+
+
+
+ +
+

First Variant

+

Second Variant

+

Third Variant

+

+

+
+

First Variant

+

Second Variant

+

Third Variant

+

+

+
+ + + +
+
+ +
+ + + diff --git a/src/HTML/findings.html b/src/HTML/findings.html new file mode 100644 index 000000000..bb061e0dc --- /dev/null +++ b/src/HTML/findings.html @@ -0,0 +1,34 @@ + + + + + Вложенные списки + + +

Швейная фурнитура

+ +
    +
  1. Аксессуары для одежды и обуви:
  2. +
      +
    1. Броши;
    2. +
    3. Булавки;
    4. +
    5. Другие принадлежности:
    6. + +
    7. Другие принадлежности;
    8. +
    + +
  3. Нитки;
  4. +
  5. Молнии:
  6. +
      +
    1. Витые;
    2. +
    3. Металлические;
    4. +
    +
  7. Пуговицы.
  8. +
+ + + \ No newline at end of file diff --git a/src/HTML/images/button_1.jpg b/src/HTML/images/button_1.jpg new file mode 100644 index 000000000..ce8145748 Binary files /dev/null and b/src/HTML/images/button_1.jpg differ diff --git a/src/HTML/images/button_4.jpg b/src/HTML/images/button_4.jpg new file mode 100644 index 000000000..860f9bf6b Binary files /dev/null and b/src/HTML/images/button_4.jpg differ diff --git a/src/HTML/images/enot.jpg b/src/HTML/images/enot.jpg new file mode 100644 index 000000000..1c840c832 Binary files /dev/null and b/src/HTML/images/enot.jpg differ diff --git a/src/HTML/images/image.jpg b/src/HTML/images/image.jpg new file mode 100644 index 000000000..ecc2e7f33 Binary files /dev/null and b/src/HTML/images/image.jpg differ diff --git a/src/HTML/index.html b/src/HTML/index.html new file mode 100644 index 000000000..b92e3e2ec Binary files /dev/null and b/src/HTML/index.html differ diff --git a/src/HTML/map.html b/src/HTML/map.html new file mode 100644 index 000000000..b084d6897 --- /dev/null +++ b/src/HTML/map.html @@ -0,0 +1,14 @@ + + + + + T_T + + + + + yandex + + + \ No newline at end of file diff --git a/src/HTML/table.html b/src/HTML/table.html new file mode 100644 index 000000000..2c0aa354d --- /dev/null +++ b/src/HTML/table.html @@ -0,0 +1,42 @@ + + + + + Table Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
МесяцПродажиМенеджер
Итого170 000
Ноябрь70 000Шашкин
Декабрь100 000Пупкин
+ + diff --git a/src/HTML/video/video.mp4 b/src/HTML/video/video.mp4 new file mode 100644 index 000000000..92fc960ca Binary files /dev/null and b/src/HTML/video/video.mp4 differ diff --git a/tasks/myproject/__init__.py b/tasks/myproject/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tasks/myproject/db.sqlite3 b/tasks/myproject/db.sqlite3 new file mode 100644 index 000000000..e54b8d6f8 Binary files /dev/null and b/tasks/myproject/db.sqlite3 differ diff --git a/tasks/myproject/main/__init__.py b/tasks/myproject/main/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tasks/myproject/main/admin.py b/tasks/myproject/main/admin.py new file mode 100644 index 000000000..b9d51a772 --- /dev/null +++ b/tasks/myproject/main/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin +from .models import ContactMessage +# Register your models here. diff --git a/tasks/myproject/main/apps.py b/tasks/myproject/main/apps.py new file mode 100644 index 000000000..167f04426 --- /dev/null +++ b/tasks/myproject/main/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class MainConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'main' diff --git a/tasks/myproject/main/forms.py b/tasks/myproject/main/forms.py new file mode 100644 index 000000000..b0242d18a --- /dev/null +++ b/tasks/myproject/main/forms.py @@ -0,0 +1,7 @@ +from django import forms +from .models import ContactMessage + +class ContactForm(forms.ModelForm): + class Meta: + model = ContactMessage + fields = ['name', 'email', 'message'] diff --git a/tasks/myproject/main/migrations/0001_initial.py b/tasks/myproject/main/migrations/0001_initial.py new file mode 100644 index 000000000..d9bcf4f46 --- /dev/null +++ b/tasks/myproject/main/migrations/0001_initial.py @@ -0,0 +1,24 @@ +# Generated by Django 5.2.1 on 2025-05-17 15:47 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='ContactMessage', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100)), + ('email', models.EmailField(max_length=254)), + ('message', models.TextField()), + ('sent_at', models.DateTimeField(auto_now_add=True)), + ], + ), + ] diff --git a/tasks/myproject/main/migrations/__init__.py b/tasks/myproject/main/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tasks/myproject/main/models.py b/tasks/myproject/main/models.py new file mode 100644 index 000000000..09df3c632 --- /dev/null +++ b/tasks/myproject/main/models.py @@ -0,0 +1,7 @@ +from django.db import models + +class ContactMessage(models.Model): + name = models.CharField(max_length=100) + email = models.EmailField() + message = models.TextField() + sent_at = models.DateTimeField(auto_now_add=True) diff --git a/tasks/myproject/main/static/main/css/base.css b/tasks/myproject/main/static/main/css/base.css new file mode 100644 index 000000000..a00c784c9 --- /dev/null +++ b/tasks/myproject/main/static/main/css/base.css @@ -0,0 +1,104 @@ +/* Основные цвета */ +:root { + --primary-color: #005BA0; /* Синий */ + --secondary-color: #00A9E0; /* Голубой */ + --accent-color: #FFFFFF; /* Белый */ +} + +/* Общие стили */ +body { + font-family: 'Arial', sans-serif; + background-color: var(--accent-color); + color: var(--primary-color); + margin: 0; + padding: 0; +} + +a { + color: var(--secondary-color); + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +/* Герой-блок */ +.hero { + background-color: var(--primary-color); + color: var(--accent-color); + padding: 50px 20px; + text-align: center; +} + +.hero h1 { + font-size: 3em; + margin: 0; +} + +.hero p { + font-size: 1.5em; +} + +/* Секции */ +section { + padding: 20px; + margin: 20px; + border-radius: 8px; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); +} + +section h2 { + color: var(--primary-color); +} + +/* Список достижений */ +.achievements ul { + list-style-type: none; + padding: 0; +} + +.achievements li { + background-color: var(--secondary-color); + color: var(--accent-color); + margin: 5px 0; + padding: 10px; + border-radius: 5px; +} +.messages { + list-style-type: none; + padding: 0; + margin: 20px 0; +} + +.message { + padding: 15px; + border-radius: 5px; + margin-bottom: 10px; + font-weight: bold; + text-align: center; +} + +.message.success { + background-color: #d4edda; + color: #155724; + border: 1px solid #c3e6cb; +} + +.message.error { + background-color: #f8d7da; + color: #721c24; + border: 1px solid #f5c6cb; +} + +.message.info { + background-color: #d1ecf1; + color: #0c5460; + border: 1px solid #bee5eb; +} + +.message.warning { + background-color: #fff3cd; + color: #856404; + border: 1px solid #ffeeba; +} diff --git a/tasks/myproject/main/templates/main/about.html b/tasks/myproject/main/templates/main/about.html new file mode 100644 index 000000000..e4e2d2a61 --- /dev/null +++ b/tasks/myproject/main/templates/main/about.html @@ -0,0 +1,44 @@ +{% extends 'main/base.html' %} +{% load static %} + +{% block title %}О клубе «Зенит»{% endblock %} + +{% block content %} +
+

История футбольного клуба «Зенит» (Санкт-Петербург)

+

ФК «Зенит» — один из старейших и самых титулованных футбольных клубов России. Базируется в Санкт-Петербурге и является гордостью города.

+ +

Основание и ранние годы (1914–1936)

+

Клуб был основан в 1914 году под названием «Кружок любителей спорта» (КЛС). В 1925 году команда переименована в «Сталинград», а в 1936-м — в «Зенит» (в честь Ленинградского завода имени Сталина, выпускавшего военную технику). В довоенные годы «Зенит» выступал в низших лигах советского футбола.

+ +

Советский период (1940–1991)

+

В 1944 году «Зенит» выиграл свой первый трофей — Кубок СССР, обыграв в финале ЦДКА со счётом 2:1. В 1984 году команда под руководством Павла Садырина впервые в истории выиграла чемпионат СССР, опередив московские клубы. В 1985 году «Зенит» дебютировал в еврокубках (Кубок УЕФА).

+ +

Российская эра (1992–2005)

+

После распада СССР «Зенит» долгое время был середняком чемпионата России. В 1999 году клуб впервые выиграл Кубок России, победив в финале «Динамо» (Москва) 3:1. В 2001 году команду купила компания «Газпром», что стало переломным моментом в истории клуба.

+ +

Золотая эра (2005–н.в.)

+

Триумф в Кубке УЕФА (2008)

+

В 2008 году «Зенит» под руководством Дика Адвокаата совершил сенсацию, выиграв Кубок УЕФА. В финале был разгромлен «Глазго Рейнджерс» (2:0). Андрей Аршавин стал звездой турнира.

+ +

Чемпион России

+

С 2007 года «Зенит» стал доминировать в РФПЛ, выиграв 9 чемпионских титулов. В 2020–2023 годах команда Сергея Семака установила рекорд, выиграв 5 чемпионатов подряд.

+ +

Кубок России и Суперкубок России

+

Клуб также неоднократно выигрывал Кубок России и Суперкубок России, укрепляя своё лидерство в отечественном футболе.

+ +

Современный «Зенит»

+

Домашний стадион: «Газпром Арена» (бывший «Санкт-Петербург», вместимость — 67 800 зрителей). Главные звёзды последних лет: Халк, Аксель Витсель, Артём Дзюба, Малком, Клаудиньо. Тренер (с 2018): Сергей Семак — рекордсмен по количеству трофеев в истории клуба.

+ +

Интересные факты

+ + +

О разработчике

+

Федоров Владислав — какой-то чувак, не надо мне писать

+
+ +{% endblock %} diff --git a/tasks/myproject/main/templates/main/base.html b/tasks/myproject/main/templates/main/base.html new file mode 100644 index 000000000..bdeaaf151 --- /dev/null +++ b/tasks/myproject/main/templates/main/base.html @@ -0,0 +1,30 @@ + +{% load static %} + + + + + {% block title %}Главная страница{% endblock %} + + + +
+ +
+ +
+ {% block content %} + {% endblock %} +
+ + + + diff --git a/tasks/myproject/main/templates/main/contact.html b/tasks/myproject/main/templates/main/contact.html new file mode 100644 index 000000000..368fbe36a --- /dev/null +++ b/tasks/myproject/main/templates/main/contact.html @@ -0,0 +1,21 @@ +{% extends 'main/base.html' %} + +{% block title %}Обратная связь{% endblock %} + +{% block content %} +

Свяжитесь с нами для правки информации о клубе

+ +{% if messages %} + +{% endif %} + +
+ {% csrf_token %} + {{ form.as_p }} + +
+{% endblock %} diff --git a/tasks/myproject/main/templates/main/index.html b/tasks/myproject/main/templates/main/index.html new file mode 100644 index 000000000..af42f01e6 --- /dev/null +++ b/tasks/myproject/main/templates/main/index.html @@ -0,0 +1,31 @@ +{% extends 'main/base.html' %} + +{% block title %}Футбольный клуб «Зенит»{% endblock %} +{% block content %} +
+

Футбольный клуб «Зенит»

+

Сине-бело-голубые — гордость Санкт-Петербурга

+
+ +
+

О клубе

+

Футбольный клуб «Зенит» был основан в 1925 году и является одним из самых титулованных клубов России и Европы. Клуб выиграл 10 титулов Чемпиона России, 5 Кубков России, 9 Суперкубков России, а также Кубок УЕФА и Суперкубок УЕФА в 2008 году.

+

«Зенит» — единственный российский клуб, который выиграл все трофеи как в советской, так и в российской истории футбола.

+
+ +
+

Достижения

+ +
+ +
+

Стадион

+

Домашняя арена клуба — Стадион «Газпром Арена», расположенный на Крестовском острове в Санкт-Петербурге. Вместимость — 68 134 зрителя.

+
+{% endblock %} diff --git a/tasks/myproject/main/tests.py b/tasks/myproject/main/tests.py new file mode 100644 index 000000000..7ce503c2d --- /dev/null +++ b/tasks/myproject/main/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/tasks/myproject/main/urls.py b/tasks/myproject/main/urls.py new file mode 100644 index 000000000..04899c3c8 --- /dev/null +++ b/tasks/myproject/main/urls.py @@ -0,0 +1,8 @@ +from django.urls import path +from . import views + +urlpatterns = [ + path('', views.index_view, name='index'), + path('about/', views.about_view, name='about'), + path('contact/', views.contact_view, name='contact'), +] diff --git a/tasks/myproject/main/views.py b/tasks/myproject/main/views.py new file mode 100644 index 000000000..088c60e89 --- /dev/null +++ b/tasks/myproject/main/views.py @@ -0,0 +1,23 @@ +from django.shortcuts import render, redirect +from .forms import ContactForm +from django.core.mail import send_mail +from django.conf import settings +from django.contrib import messages + +def index_view(request): + return render(request, 'main/index.html') + +def about_view(request): + return render(request, 'main/about.html') + + +def contact_view(request): + if request.method == 'POST': + form = ContactForm(request.POST) + if form.is_valid(): + form.save() + messages.success(request, 'Ваше сообщение успешно отправлено!') + return redirect('contact') + else: + form = ContactForm() + return render(request, 'main/contact.html', {'form': form}) diff --git a/tasks/myproject/manage.py b/tasks/myproject/manage.py new file mode 100644 index 000000000..92bb9a3b2 --- /dev/null +++ b/tasks/myproject/manage.py @@ -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', 'myproject.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() diff --git a/tasks/myproject/myproject/__init__.py b/tasks/myproject/myproject/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tasks/myproject/myproject/asgi.py b/tasks/myproject/myproject/asgi.py new file mode 100644 index 000000000..18346a369 --- /dev/null +++ b/tasks/myproject/myproject/asgi.py @@ -0,0 +1,16 @@ +""" +ASGI config for myproject 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/5.2/howto/deployment/asgi/ +""" + +import os + +from django.core.asgi import get_asgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings') + +application = get_asgi_application() diff --git a/tasks/myproject/myproject/settings.py b/tasks/myproject/myproject/settings.py new file mode 100644 index 000000000..d89694d52 --- /dev/null +++ b/tasks/myproject/myproject/settings.py @@ -0,0 +1,135 @@ +""" +Django settings for myproject project. + +Generated by 'django-admin startproject' using Django 5.2.1. + +For more information on this file, see +https://docs.djangoproject.com/en/5.2/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/5.2/ref/settings/ +""" +import os +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/5.2/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = 'django-insecure-5wxhgkrd185de9a=%k$1zu&8=5r454majdpe^_)j5$c+^$ui(@' + +# 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', + 'main', +] + +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 = 'myproject.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [BASE_DIR / 'main' / 'templates'], + '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 = 'myproject.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/5.2/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': BASE_DIR / 'db.sqlite3', + } +} + + +# Password validation +# https://docs.djangoproject.com/en/5.2/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/5.2/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'UTC' + +USE_I18N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/5.2/howto/static-files/ + +STATIC_URL = '/static/' + +STATICFILES_DIRS = [ + os.path.join(BASE_DIR, 'main', 'static'), +] +# Default primary key field type +# https://docs.djangoproject.com/en/5.2/ref/settings/#default-auto-field + +DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' + +EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' +EMAIL_HOST = 'smtp.example.com' +EMAIL_PORT = 587 +EMAIL_USE_TLS = True +EMAIL_HOST_USER = 'fedorov@example.com' +DEFAULT_FROM_EMAIL = EMAIL_HOST_USER diff --git a/tasks/myproject/myproject/urls.py b/tasks/myproject/myproject/urls.py new file mode 100644 index 000000000..cd195ed51 --- /dev/null +++ b/tasks/myproject/myproject/urls.py @@ -0,0 +1,25 @@ +""" +URL configuration for myproject project. + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/5.2/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, include + +urlpatterns = [ + path('admin/', admin.site.urls), + path('', include('main.urls')), +] + + diff --git a/tasks/myproject/myproject/wsgi.py b/tasks/myproject/myproject/wsgi.py new file mode 100644 index 000000000..7c6fdd6bb --- /dev/null +++ b/tasks/myproject/myproject/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for myproject project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/5.2/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings') + +application = get_wsgi_application() diff --git "a/tasks/myproject/\320\244\320\265\320\264\320\276\321\200\320\276\320\262\320\222\320\273\320\260\320\264\320\270\321\201\320\273\320\260\320\262\320\233\320\260\320\2617-8.docx" "b/tasks/myproject/\320\244\320\265\320\264\320\276\321\200\320\276\320\262\320\222\320\273\320\260\320\264\320\270\321\201\320\273\320\260\320\262\320\233\320\260\320\2617-8.docx" new file mode 100644 index 000000000..662da5362 Binary files /dev/null and "b/tasks/myproject/\320\244\320\265\320\264\320\276\321\200\320\276\320\262\320\222\320\273\320\260\320\264\320\270\321\201\320\273\320\260\320\262\320\233\320\260\320\2617-8.docx" differ diff --git "a/\320\244\320\265\320\264\320\276\321\200\320\276\320\262_Web1_\320\276\321\202\321\207\320\265\321\202.pdf" "b/\320\244\320\265\320\264\320\276\321\200\320\276\320\262_Web1_\320\276\321\202\321\207\320\265\321\202.pdf" new file mode 100644 index 000000000..c94e44aba Binary files /dev/null and "b/\320\244\320\265\320\264\320\276\321\200\320\276\320\262_Web1_\320\276\321\202\321\207\320\265\321\202.pdf" differ