Примеры с Russian DjangoBook/examples/Последние примеры с Russian DjangoBookru-RUTue, 31 May 2022 06:28:39 -0000Несколько форм на одной странице. Сохранение данных/examples/157/Доброго времени суток. Я новичок в программирование и сейчас создаю свой первый проект на Django. Прошу строго не судить и буду благодарен за Вашу помощь!<br />Мне необходимо реализовать страницу с 4 формами построенными на моделях. При этом некоторые из моделей взаимосвязаны с собой.<br />Вот мой forms.py:<br /> class ColorForms(ModelForm):<br />class Meta:<br /> model = Color<br /> fields = [&#39;temp&#39;, &#39;correct&#39;, &#39;top&#39;, &#39;bottom&#39;]<br /> widgets = {<br /> &#39;temp&#39;: NumberInput(attrs={<br /> &#39;class&#39;: &#39;form-control&#39;,<br /> &#39;placeholder&#39;: &#39;temp&#39;<br /> }),<br /> &#39;correct&#39;: NullBooleanSelect(attrs={<br /> &#39;class&#39;: &#39;form-control&#39;,<br /> &#39;placeholder&#39;: &#39;correct&#39;<br /> }),<br /> &#39;top&#39;: NumberInput(attrs={<br /> &#39;class&#39;: &#39;form-control&#39;,<br /> &#39;placeholder&#39;: &#39;top&#39;<br /> }),<br /> &#39;bottom&#39;: NumberInput(attrs={<br /> &#39;class&#39;: &#39;form-control&#39;,<br /> &#39;placeholder&#39;: &#39;bottom&#39;<br /> }),<br /> }<br /><br />class SpeedsForms(ModelForm):<br />class Meta:<br /> model = Speed<br /> fields = [&#39;start&#39;, &#39;end&#39;]<br /> widgets = {<br /> &quot;start&quot; .../examples/157/Python 3.8/examples/156/Подробности на &lt;a <a href="http://href=&quot;https://docs.python.org/3.8/whatsnew/3.8.html%22%3E%D0%B0%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%BE%D0%BC" rel="nofollow">href=&quot;https://docs.python.org/3.8/whatsnew/3.8.html&quot;&gt;английском</a> языке&lt;/a&gt;.<br />Ниже переведено только необходимое, можете добавлять в комментариях.<br />Моржовый оператор<br />Выражения присваивания пришли в Python с оператором &quot;морж&quot;, то есть :=. Данный оператор позволяет вам присваивать значения переменной как часть выражения. Основной выигрыш применения этого оператора состоит в сокращении количества строк, которые вам потребуется написать.<br />Раньше писали так:<br />line = f.readline()<br />while line:<br /> ... # process line<br /> line = f.readline()<br /><br />теперь можно так:<br />while line := f.readline():<br /> ... # process line<br /><br />Кратко, но некоторые говорят, что первый вариант понятнее.<br />Только позиционные аргументы<br />Специальный маркер / можно использовать для определения аргументов .../examples/156/Parole/examples/155/import random<br />correctPassword = &quot;1234&quot;<br />wrongPasswords = []<br />password = &quot;&quot;<br />length = int(input(&quot;длина пароля:&quot;))<br />chars = &#39;+-/*!&amp;amp;$#?=@&amp;lt;&amp;gt;abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890&#39;<br />run = True<br />while run:<br />password = &quot;&quot;<br /><br /><br />for i in range(length):<br /><br /> password += random.choice(chars)<br /><br /><br />if password not in wrongPasswords:<br /><br /> if password != correctPassword:<br /><br /> print(password)<br /><br /> wrongPasswords.append(password)<br /><br /> else:<br /><br /> run = False<br /><br /> break<br />/examples/155/Не могу передать значение из js Ajax в шаблон/examples/154/Помогите новичку. Тема такая передаю из js значения переменной через аякс в Джанго.<br />var name = &#39;text&#39;<br />$(function(){<br /><br /> $.ajax({<br /> url: &#39;&#39;,<br /> type:&#39;GET&#39;,<br /> data:{&#39;name&#39;: name},<br /> success: function(data) {<br /> { }<br /> }<br /> });<br />});<br /><br />На стороне Django:<br /> nameuser=request.GET.get(&#39;name&#39;)<br />data ={&#39;nameuser&#39;:nameuser}<br />print(data)<br /><br />При чем вижу что данные получаю ,те которые уход в скрипте. А вот при передаче в шаблон {{ nameuser }} получаю None. При этом если жеско указываю переменную то в шаблоне все ок. Где я не прав?Спасибо/examples/154/Не могу передать значение из js Ajax в шаблон/examples/153/Помогите новичку. Тема такая передаю из js значения переменной через аякс в Джанго.<br />var name = &#39;text&#39;<br />$(function(){<br /><br /> $.ajax({<br /> url: &#39;&#39;,<br /> type:&#39;GET&#39;,<br /> data:{&#39;name&#39;: name},<br /> success: function(data) {<br /> { }<br /> }<br /> });<br />});<br /><br />На стороне Django:<br /> nameuser=request.GET.get(&#39;name&#39;)<br />data ={&#39;nameuser&#39;:nameuser}<br />print(data)<br /><br />При чем вижу что данные получаю ,те которые уход в скрипте. А вот при передаче в шаблон {{ nameuser }} получаю None. При этом если жеско указываю переменную то в шаблоне все ок. Где я не прав?Спасибо/examples/153/Дата с помощью <input type="date">/examples/152/По умолчанию, поле формы forms.DateField использует виджет forms.TextInput. Для добавления обычного способа выбора/ввода даты нам нужно создать собственный виджет. Наследуемся от forms.DateInput.<br />class DateInputWidget(forms.DateInput):<br /> input_type = &#39;date&#39;<br /><br /> def format_value(self, value):<br /> return value<br /><br />Свойство input_type = &#39;date&#39; задаёт атрибут type для html-тега input. Если у нас есть какое-то начальное значение для поля, метод format_value по умолчанию устанавливает в качестве значения для input локализованную дату (если в settings.py USE_L10N установлен в True). Что-то типа ДД.ММ.ГГГГ. Браузер же требует формат ГГГГ-ММ-ДД и потому не будет отображать начальное значение.<br />Чтобы этого избежать, переопределяем метод format_value, заставляя .../examples/152/Введение/examples/122/Инфраструктура<br />DevOps создаёт инфраструктуру разработки:<br /><br />сервис для управления пользователями и их правами: OpenLDAP и т.д.<br />сервис для управления репозиториями: &lt;a <a href="http://href=&quot;https://about.gitlab.com/%22%3EGitLab%3C/a" rel="nofollow">href=&quot;https://about.gitlab.com/&quot;&gt;GitLab&lt;/a</a>&gt;, &lt;a href=&quot;https://gitea.io/&quot;&gt;Gitea&lt;/a&gt; и т.д.<br />сервис для базы знаний: &lt;a <a href="http://href=&quot;https://www.atlassian.com/software/confluence%22%3EConfluence%3C/a" rel="nofollow">href=&quot;https://www.atlassian.com/software/confluence&quot;&gt;Confluence&lt;/a</a>&gt;, &lt;a <a href="http://href=&quot;https://www.dokuwiki.org/dokuwiki%22%3EDokuWiki%3C/a" rel="nofollow">href=&quot;https://www.dokuwiki.org/dokuwiki&quot;&gt;DokuWiki&lt;/a</a>&gt; и т.д.<br />сервис для управления задачами: &lt;a <a href="http://href=&quot;https://www.atlassian.com/ru/software/jira%22%3EJira%3C/a" rel="nofollow">href=&quot;https://www.atlassian.com/ru/software/jira&quot;&gt;Jira&lt;/a</a>&gt; и т.д.<br />сервис для автоматического тестирования, сборки и деплоя: &lt;a <a href="http://href=&quot;https://about.gitlab.com/%22%3EGitlab%3C/a" rel="nofollow">href=&quot;https://about.gitlab.com/&quot;&gt;Gitlab&lt;/a</a>&gt;, &lt;a .../examples/122/Нужен Python Django Developer уровня Middle/examples/115/Ищем Python - разработчика (middle и выше), который обладает следующим: <br /><br /><br />Опыт работы с Python синтаксис v3 не менее 3-х лет. Из них не менее двух лет создания именно Web-сервисов на Python.<br /><br /><br />Отличное знание фреймворка Django.<br /><br /><br />Опыт работы с РСУБД: MySQL и PgSQL включая проектирование схемы БД и оптимизация производительности запросов минуя ORM.<br /><br /><br />Обязательно понимание и использование принципов SOLID и DDD, хорошее знание баз и паттернов проектирования, а также микросервисной архитектуры<br /><br /><br />Опыт работы с Redis.<br /><br /><br />Обязателен опыт работы с очередями на Celery или RabbitMQ (возможно ActiveMQ).<br /><br /><br />Опыт создания production Docker-контейнеров из своих сервисов.<br /><br /><br />Опыт командой работы по GitFlow.<br /><br /><br />Хорошее понимание протокола HTTP .../examples/115/pdb – Интерактивный отладчик/examples/114/Версии Python: 1.4 и выше<br />Отладчик pdb является интерактивной средой отладки для программ на Python. Он включает возможности приостановки выполнения программы, просмотра значений переменных, построчного выполнения кода так, что вы можете понять, чем ваша программа на самом деле занимается, и найти логические ошибки.<br />Запуск отладчика<br />Для начала использования pdb необходимо указать интерпретатору, как и когда мы хотим увидеть отладчик. Существует несколько способов это сделать, в зависимости от условий запуска, а также требований к отладке.<br />Из командной строки<br />Самый очевидный метод использования отладчика — запускать его из командной строки, передавая вашу программу параметром так, чтобы он знал, что запускать.<br /># encoding: utf-8 .../examples/114/Конфигурация/examples/111/Конфигурация - одна из важнейших частей проекта. С него он начинается. Именно конфигурацией вы определяете с какой базой данных надо работать, какие приложения использовать, как форматировать время, как переводить ресурсы и на какие языки, и многое другое.<br />Решением, проверенным временем и множеством проектов, является передача конфигурационных параметров через переменные окружения. Внутри файла settings.py остаётся только их правильно прочитать из окружения и применить.<br />Для получения булевых данных из переменной окружения используем функцию:<br />import os<br /><br />def getenv_boolean(name: str, default: bool=False) -&amp;gt; bool:<br /> value = os.getenv(name, default)<br /> if isinstance(value, str):<br /> return value.lower() == &#39;true&#39;<br /> return value<br /><br />Для получения строковых .../examples/111/