Игорь Маркин

Путь Питониста

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

Вот ссылочка: https://www.notion.so/cf2566970f7e4d39801af2182cb9ea3b

 Нет комментариев    34   1 мес   django

Как запустить Django-проект с помощью PyCharm?

В PyCharm создаём новый проект. Виртуальное окружение будет добавлено автоматически.

Устанавливаем Django и его зависимости:

terminal: pip install Django

Создаём новый проект Django:

terminal: django-admin startproject <project_name>

Переходим в папку и создаём новое приложение:

terminal: cd <project_name>
terminal: python manage.py startapp <app_name>

Добавляем приложение в переменную INSTALLED_APPS файла settings.py:

Определяем директорию хранения шаблонов:

TEMPLATES_DIR = os.path.join(BASE_DIR, "templates")

Определяем директорию хранения статических файлов:

STATIC_ROOT = os.path.join(BASE_DIR, "static") 

Создаём модели приложения в файле models.py:

Создаём представление приложения в файле views.py:

Создаём скрипт миграций и запускаем миграции:

terminal: python manage.py makemigrations
terminal: python manage.py migrate

Регистрируем приложение в панели администратора в файле admin.py:

Создаём суперпользователя:

terminal: python manage.py createsuperuser

Создаём структуру адресов в переменной urlpath в файле urls.py папки :

path('', include('app_name.urls'), name='index')

Создаём структуру адресов в файле urls.py в файле приложения:

path('', views.index, name='index')

Создаём в папке templates шаблон главной страницы приложения.

Собираем статические файлы (если есть):

terminal: python manage.py collectstatic

Запускаем сервер:

terminal: python manage.py runserver

Добавляем несколько новых записей:

http://127.0.0.1:8000/admin/

Наслаждаемся результатом:

 Нет комментариев    185   3 мес   django

Итоги голосования «Интересный блог»

Итак, подведём итоги опроса и поразмышляем о будущем.

Подводим итоги

  • РСС — жив
  • Мемы — нет
  • Большая часть заметок бесполезна для читателей
  • Частота публикаций «пару раз в неделю» — лидирует
  • В порядке приоритета не хватает: более глубоких заметок, видеороликов и в меньшей степени подкастов

Выводы

  • Будем делать ютуб-канал «Заметки питониста». Видео пока нет, но уже можно подписываться по ссылке. Думаю, что видео будет выходит 2-3 раза в месяц.
  • Текстовые заметки буду готовить глубже. На это будет уходить время. Планирую публиковать их 1-2 в неделю.
  • Возможно, раз в месяц будет подкаст. А может и не будет. Пока нечего сказать в этом направлении.

Форматы

Вот, что верится в голове по форматам. Это просто черновик, не планы:

  • Новости из мира IT
  • Ответы на частые вопросы студентов, с которыми я учусь
  • Беседы с программистами из России и других стран
  • Мини-проекты с подробным разбором для развивающихся новичков
  • Анонсы мероприятий
  • Опросы/голосования
  • Мануалы для начинающих на простом языке (for dummies)
  • Переводы интересных моментов из документации пайтона и джанго, если таковых нет
  • и т. д. Может ещё что-то придумается.

Всем спасибо за участие, хорошего настроения :)

Сделаем блог интереснее

У блога меньше десяти постоянных читателей, но мнение каждого сыграет роль в развитии блога. Думаю о том, в каком направлении двигаться дальше. Вы здорово поможете, если заполните опросник.

Сделать это можно по ссылочке: https://forms.gle/1NQGpZU36cNw4myD9

Если у вас есть личные пожелания, комментарии, жалобы или предложения — напишите об этом в комментариях. Заранее спасибо :)

Базовые команды Git и Bash (шпаргалка)

Настройка пользователя

git config --global user.name "Ваше Имя"
git config --global user.email "your_email@whatever.com"

Создание папки

mkdir <folder>

Клонирование репозитория

git clone <https://github.com/your_account/repository>

Состояние репозитория

git status

Добавить файл в Staging Area

git add <filename>
git add .
git add --all

Снять отслеживание с файла

git rm --cached <filename>

Сделать коммит

git commit -m "message"

Добавить изменения к последнему коммиту

git commit --amend -m "message"

Отправить изменённый код в githab

git push

Информация о коммитах

git log

Информация об изменениях

git show HEAD - информация о последнем коммите
git show c952d96 - информация о конкретном коммите

Откат изменений

git reset HEAD - откат на один коммит назад во всех файлах
git reset HEAD <filename> - откат на коммит назад в конкретном файле
git reset 97a25f7 - откат до конкретного коммита

Откат локальных изменений

git restore --staged <file> - убирает файл из индекса, но оставляет изменения
git restore <file> - отменяет локальные изменения
git restore . - отменяет все локальные изменения
git restore --source 7bef293b <file> - откатывает до нужной версии файла по хешу

Слияние веток в одну

git pull - забирает изменения с сервера и сохраняет их локально

Простое переключение между ветками

git switch <branch>

Игнорирование файлов через файл .gitignore

README.md - игнорирование отдельного файла
test/file.txt - игнорирование файла в папке
/folder/ - игнорирование папки
/folder/* - игнорирование папки и всех подпапок
.pdf - игнорирование файлов с расширением
 2 комментария    210   3 мес   git

Скрипт Quizazello переехал на гитхаб

Чтобы не публиковать в блоге информацию об изменениях в скрипте, решил создать для него отдельный репозиторий. Там и буду работать над проектом. Всё перевёл на английский язык, но он там очень простой, разберётесь. В общем, велком.

Ссылочка на репозиторий Quizazello.

 Нет комментариев    90   3 мес   python

Скрипт для создания викторин Quizazello (version 0.2)

Что это: на данном этапе — скрипт для создания викторин на основе базы вопросов. В будущем — бот для мессенджеров.

Зачем: можно проводить интеллектуальные игры, тестировать знания сотрудников или применять в школах для проведения экзаменов.

Что умеет:

  • Читает базы любого размера и задаёт вопросы игроку в случайном порядке (DB_FILE)
  • Сыгранные вопросы удаляются из текущего списка, поэтому они не повторяются
  • Текущий список сохраняется в отдельный файл вместе с баллами и рекордом игрока (DB_SAVE_FILE)
  • При загрузке, если файл сохранения найден, скрипт спросит у вас — нужно ли оттуда загружаться
  • Система подсказок сначала отображает повторяющиеся буквы, а затем по порядку (COUNT_HINTS)
  • Точность принимаемого ответа зависит от настроек и даёт игроку шанс на орфографическую ошибку (ACCURACY)
  • За ответы игрок получает или теряет баллы в размере базового бонуса и длины слова (WIN_PRICE)
  • Во время игры система понимает две команды: «/exit» — выйти с сохранением и «/exit -s» — выйти без сохранения

Планы:

  • добавить мини-игры для разнообразия
  • переделать скрипт в чат-бота

Исходный код + 37830 вопросов по ссылке.

 Нет комментариев    104   3 мес   python

Консольная игра «Survive The Chat» или «Чат на выживание»

**ДОБРО ПОЖАЛОВАТЬ В ИГРУ SURVIVE THE CHAT**
Твоя задача - стать новым модератором чата.
Для победы набери 500 очков репутации.
Отношения и репутация < 0 приведут к необратимым последствиям.

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

Код может пригодиться, если вам нужен готовый список наречий и вводных слов. Это вы можете найти внутри и использовать как угодно.

Если я вас не отговорил — скачивайте, запускайте и играйте. Механика очень отдалённо похожа на игру Reigns, где игрок принимает решения смахиванием карточек влево и вправо. В общем, гуд лак. Не судите строго :)

Исходный код — по ссылке.

 Нет комментариев    90   4 мес   python

Игра «Crazy Racing» или «Безумные гонки»

Представляю вашему вниманию новый проект — игру «Безумные гонки». Она, как и все предыдущие игры, написана по инструкциям из учебника Виктора Трофимова. Правда, у него игра была про ипподром, а я переделал её в гонки. В коде много костылей, тиражирование переменных и прочие нюансы, за которые можно ругаться. Это особый путь автор учебника: разобраться во всём детально, чтобы лучше понять логику программирования.

Сюжет. Вы — человек с деньгами, который пытается выиграть на ставках.

Особенности игры:

  • 4 уникальных гонщика с собственным типом автомобиля
  • Анимация передвижения гоночных болидов по треку
  • Журнал событий, где отображается погода и время суток
  • Случайное состояние автомобиля у гонщиков для каждого заезда
  • Разные коэффициенты выигрыша, в зависимости от авто и случайных событий
  • Случайные события: поломка трансмиссии, поломка двигателя, бешеное ускорение

Вот, вроде всё описал. Скачайте, попробуйте поиграть. Стоимость игры 499 ₽.

Скачать код игры можно по ссылке.

 Нет комментариев    125   4 мес   python
Ранее Ctrl + ↓