Основы PyCharm

Приветствие

Привет, сегодня я расскажу новичкам про полезные и удобные функции PyCharm (далее пайчарм). Эта статья предназначена для тех, кто только знакомится с PyCharm и написал свои первые программы. Затронем основной функционал пайчарма, который может упростить и ускорить вашу работу и узнаем, как запускать сервер и тесты Django в один клик. Поскольку, статья для новичков, то буду писать довольно подробно.

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

Создание и настройка проекта

Начнём с самого главного — создания нового проекта (File → New Project).

407c6d6d71ff0a5f51bb889ba9eda8b0.png

На вкладке слева можно выбрать на чём будет основан ваш проект. Я покажу пример создания проекта Django (далее джанго), но Pure Python не будет сильно отличаться.

  1. В поле Location выбираем директорию, в которой создадим наш проект. После выбора директории в поле прописываем \название_проекта — это и будет папка нашего проекта.

  2. Выбор между новой виртуальной средой (New enviroment using) и уже существующей (Previosly configured interpreter)
    а) Если вы выбираете уже существующую виртуальную среду, то нужно указать путь до файла python.exe в папке …/venv/Scripts/python.exe (для Linux …/venv/bin/python)
    б) Но как правило создаётся новая виртуальная среда. В поле Location можно выбрать местонахождение папки venv. По умолчанию папка venv расположится внутри папки проекта. Если необходимо создать папку с именем отличным от venv, то в поле Location сотрите venv и впишите название папки.
    Пункт Inherit global site-packages позволяет включить в нашу виртуальную среду все библиотеки установленные в глобальной среде.
    Make available to all projects отвечает за видимость созданной виртуальной среды для других проектов. Если вам нужна одна виртуальная среда сразу на несколько проектов, то стоит выбрать этот пункт.

  3. Если у вас отсутствует путь в Base interpreter, то нужно добавить python в PATH.

  4. Тут уже начинаются настройки для джанго. В поле Tempate languages идёт выбор языка для html шаблонов. Можно оставить стандартный Django или при необходимости выбрать Jinja2.

  5. Поле Templates folder отвечает за название папки с шаблонами. Без особой необходимости менять название этой папки не стоит.

  6. В Application name можно указать имя нашего первого приложения, которое мы хотим создать.

  7. Пункт Enable Django admin отвечает за работу стандартной админ. панели джанго. Если вам не нужна полностью своя админ. панель, то смело ставим тут галочку. Функционала стандартной админ. панели, как правило, достаточно.

Нажимаем Create и ждём пока создастся наш проект. Созданный проект будет иметь следующую структуру:

d2055e833e86ffd90baa41624e332e00.png

Я привык работать с проектом, когда все приложения вложены ещё в одну папку, а в главной директории находится папка с приложениями, файлы настройки и папка venv. Поэтому я создам папку apps (ПКМ по основной (верхней) папке → NewDirectory) и перенесу в неё папки first_app, TestProject, templates и файл manage.py. (Зажав Ctrl кликаем на нужные папки, далее нажимаем Ctrl+X, выбираем созданную ранее папку apps и нажимаем Ctrl+V). Если после переноса файлов у вас в папке apps появился файл __init__.py, то удалите его. Получим следующую структура проекта:

a10e1ee593dd65b13cc1e1b6d3f9044e.png

Чтобы джанго правильно искал шаблоны и все импорты работали корректно нужно промаркировать папки. Для этого кликаем правой кнопкой по папке apps → выбираем пункт Make Directory as и выбираем Sources Root. Для папки templates установим значение Template Folder. В папке apps создадим папку static, для хранения статических файлов и промаркируем её как Resource Root.

934e1fda25b5fb1a980ebff65795cd72.png

В процессе разработки могут появится файлы, которые не нужно проверять линтеру, такие директории можно помечать как Excluded. Например, папка vevn отмечена так по умолчанию.

Ещё немного про виртуальную среду

Функционал пайчарма часто позволяет избегать работы с терминалом и настраивать всё проще и быстрее. Поэтому даже в уже существующем проекте виртуальную среду можно удобно настроить. Для этого откроем настройки (Ctrl+Alt+S), и перейдём во вкладку Project: <Имя проекта>. Здесь нас интересует пункт Python Interpretter

f2178150fee2dd1aea4281d77ec52e7d.png

В поле Python Interpretter указана используемая версия python, имя проекта (в скобках) и путь к файлу python.exe для виртуальной среды. Если вам потребовалось сменить виртуальную среду или у вас она не выбрана, то нажимаем на Add InterpreterAdd Local Interpreter. Дальнейшие действия по настройке виртуальной среды можно посмотреть в главе «Создание проекта» пункт 2.

Возможности PyCharm

Терминал

В настройках можно включить автоматическую активацию виртуальной среды в терминале при его открытии. Очень полезная вещь, ведь теперь не придётся каждый раз активировать её вручную. Для этого открываем настройки (Ctrl+Alt+S) → Tools → Terminal.

78e4e4c101ee8e91f9b3da8a1175769b.png

Здесь можно настроить стартовую директорию при открытии терминала (Start directory), выбрать какой терминал будет открываться по умолчанию (Shell path) и самое главное установить автоматическую активацию виртуальной среды. Ставим галочку перед Activate virtualenv и готово.
Если у вас выбран терминал bash, то вы столкнётесь с тем, что при открытии терминала над строкой ввода не будет отображаться название виртуальной среды. Не пугайтесь. Не знаю с чем связан данный баг, но всё работает корректно и виртуальная среда уже активирована. Можете проверить выбранный интерпритатор с помощью команды which python .

5986c8835b8762081fb79552308d0fc9.png

Работа с Git

Больше не придётся мучаться с командами в терминале. Все основные действия с гитом можно проделывать с помощью встроенных инструментов пайчарм. В левой верхней части окна находится вкладка Commit. Нажав на неё откроется меню работы с гитом.

4ec477dff6f650227c524264558febe6.png

Первые три значка в верхней строке отвечают за проверку последних изменений, откат изменений и сравнение файла до и после изменений.
Можно выбрать файлы, которые войдут в коммит, написать комментарий (Commit Message), дополнить последний коммит (Amend). Кнопки Commit и Commit and Push отвечают соответственно за создание коммита и его отправку на GitHub или другой сервис. При входе в свой GitHub аккаунт в дальнейшем не потребуется каждый раз вводить пароль перед пушем, всё произойдёт автоматически.

Базы данных

По умолчанию инструменты для работы с БД доступны только в pro версии пайчарма. Для бесплатной версии есть плагин, который предоставляет схожий функционал. Расскажу про оба варианта.

Работа с БД в PyCharm Professional

Стандартный функционал предоставляет обширный функционал для работы БД, который покрывают различные ваши потребности, но я расскажу о самом простом и полезном для новичков.
Для начала необходимо установить связь с БД. В верхнем правом углу находим вкладку Database→ нажимаем на плюс → Data SourceSQLite (тут выбираем нужную СУБД).

0e62678fe4dd378d9be0566ed22e6714.png

В открывшемся окне в поле Name вводим имя, которое мы хотим видеть при работе с БД (на название файла БД это никак не повлияет). В поле File выбираем наш файл БД и нажимаем ОК.

70501223035bce5f93c5c585903687c7.png

Теперь в списке можем увидеть нашу БД. Для того, чтобы обновить данные БД нажимаем на стрелочки (или комбинация Ctrl+F5) и получаем последнее состояние БД.

53390b6477be442b1eafd37417c3247c.png

В этом окне мы можем видеть все таблицы БД. Двойной клик по ним откроет окно редактирования таблицы. Можно посмотреть правильно ли сохранились данные или подправить что-то при необходимости.

Работа с БД в PyCharm Community

Для работы с БД с бесплатной версии необходимо установить плагин Database Navigator (процесс установки плагинов описан ближе в главе «Плагины» ближе к концу статьи).

8dcd7853ec0e5df4821162edb6a78912.png

После установки плагина, в левой верхней части интерфейса появится вкладка DB Browser. Во вкладку нажимаем на плюс и выбираем нужную СУБД.

1e9d6178616addcfee3b3f5e746cb714.png

В открывшемся меню в поле Name указываем название соединения. Вместо sqlite.db указываем путь к нашей БД и нажимаем ОК.

60d90bf89084f08acacf0abd12ee683b.png

Двойной клик по таблице откроет окно, в котором будет предложено составить SQL запрос для выбора данных из таблицы. Просто нажимаем на кнопку No Filter и получаем все записи из таблицы. Теперь у нас есть доступ к таблицам БД, возможность просматривать и редактировать их.

Настройка сервера и тестов для Django

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

46d7c6dcb5af47c6bae0e69710d006cb.png

Открываем выпадающее меню и кликаем на Edit Configurations.... В открывшемся окне нажимаем на крестик и находим Django Server.

f5145e87dbcbef54a941cb1dbc33964a.png

В правой части окна нам предложат настроить нашу конфигурацию. В поле Name вводим имя конфигурации, а в поле Working directory выбираем папку проекта, которую при создании мы отметили как Sources Root. Если же все приложения у вас хранятся в основной директории проекта, то укажите её в этом поле. Сохраняем конфигурацию и теперь можно запустить сервер, просто нажав на кнопку Run (зелёный треугольник).

На нижней панели появится вкладка Run, которая будет показывать информацию о работе нашего сервера и можно будет свободно работать с терминалом.

aa139a2226a673534063f7c534198ff0.png

Для создания тестовой сборки вместо Django server выбираем Django tests. Поля Name и Working directory заполняются аналогично конфигурации сервера. Полезным может оказаться поле Options. Оно позволяет передать дополнительные аргументы при запуске тестов, так как при вводе команд в терминале.

187528097b8e4e716821d4755b739560.png

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

94ab1ded7d077ff37ecfdcf8dffb2a08.png

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

Аналогичные конфигурации можно создать для Flask, FastAPI и многих других фреймворков.

Полезные плагины

Плагины могут очень сильно расширить и дополнить стандартный функционал. Я разделил их на три группы: обязательные, опциональные и косметика. Рекомендую скачать все плагины из первой категории. Для установки плагинов откройте настройки (Ctrl+Alt+S) → Plugins и останется выбрать только нужные вам расширения.

Обязательные

  • Tabnine — потрясающий плагин, который будет писать код за вас). Часто спасает при вводе длинных строк, которые он дописывает сам. И даже может дописывать простенькие функции или логические конструкции. В общем, крайне полезная вещь. Конечно же есть и минус, большая часть функционала платная, по подписке. Но даже бесплатная версия будет полезна

  • Rainbow Brackets — меняет цвет скобок в зависимости от их вложенности. Очень упрощает работу и позволяет гораздо быстрее ориентироваться в коде.

  • Requirements — плагин для более удобной работы с файлом requirements.txt

Опциональные

  • Translation — если вы прекрасно знаете английский, то этот плагин вам ни к чему, но всегда удобно иметь переводчик под рукой.

  • WakaTime — позволяет отслеживать сколько времени вы потратили на работу, на какой проект и многое другое. Есть и платный функционал, но для простого анализа потраченного на работу времени хватает и бесплатной версии.

  • GitToolBox — расширяет стандартный функционал работы с гитом.

  • PyLint, SonarLint и другие. Я считаю, что линтеров много не бывает, поэтому предлагаю поставить какой-нибудь дополнительный линтер.

  • MyPy — плагин помогает в проверке статических типов. Он использует собственную динамическую проверку Python или неявную (утиную) типизацию с подсказкой самого типа.

  • Flake8 — проверяет код на соответствие PEP8. Его установка отличается от стандартных плагинов. Как установить flake8 в pycharm.

Косметика

  • ExtraToolWindows Colorful Icons — делает многие иконки цветными и лично для меня упрощает навигацию по ним.

  • Pokemon Progress — добавит немного веселья в работу. Плагин меняет полосу загрузки на покемонов. Можно выбрать нескольких любимых, а можно каждый раз любоваться новыми.

  • Ещё есть всевозможные варианты тем на любой вкус и цвет. При большом желании можно создать и свою. Лично меня вполне устраивает стандартная тема Darcula.

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

Горячие клавиши и всякие мелочи

В этой главе будут самые полезные горячий клавиши и небольшие фишки пайчарма.

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

  • Разделение рабочей области. Нажав ПКМ на вкладку открытого файла, можно выбрать один из пунктов Split и видеть перед собой сразу два и более файлов.

  • Переход к функции, классу или файлу. Зажав Ctrl и кликнув по функции или классу можно быстро переместиться к ним, даже если они находятся в другом файле. А если в коде у вас, например, указано имя html шаблона, то по клику можно быстро его открыть.

  • Автоформатирование кода. Комбинация Ctrl+Alt+L приводит весь код в файле в соответствие с настройками форматирования для данного типа файла. Удобно применять при переносе строк, чтобы все отступы подравнялись и заодно поправить то, что вы могли пропустить

  • Дублировать текущую строку. Ctrl+D создаёт дубликат строки и вставляет его на следующую строку. Пригождается при написании похожих и длинных конструкций

  • Переименовать что угодно. Shift+F6 переименует выбранную переменную, файл и много другое сразу во всём проекте или при необходимости только в выбранном файле. Если имя файле в коде хранится в виде строки, то оно тоже изменится.

  • Комбинация Ctrl+/ закомментирует (либо расскомментирует) все выделенные строки, если выбрана английская раскладка. При активной русской раскладке данная комбинация свернёт выбранный участок кода, а при нажатии на появившийся символ многоточия раскроет его обратно.

  • Левый Alt+ЛКМ (левая кнопка мыши) добавит дополнительный курсор в указанное место.

  • Поиска по файлу — Ctrl+F. Поиска и замена в файле — Ctrl+R. Ctrl+Shift+F текстовый поиск сразу по всему проекту.

  • Отмена последнего действия — Сtrl+Z, операция обратная отмена последнего действия (если переборщили с Ctrl+Z) Ctrl+Y. При Первом использовании Ctrl+Y пайчарм предложит выбрать, что назначить на эту комбинацию: удаление строки или Ctrl+Z наоборот. Я предпочитаю второе.

  • Стандартные комбинации Ctrl+C — копировать, Ctrl+V — вставить.

  • Вырезать строку. Ctrl+X удаляет выбранную строку (строку, где находится курсор) и сохраняет её в буфер обмена

  • Открыть буфер обмена. Win+V откроет буфер обмена и можно выбрать нужное из последних скопированных данных. Данная комбинация относится к windows, а не пайчарму, но она очень полезна в работе. Для Linux тоже можно найти менеджеры буфера обмена.

  • Установки длины строки по PEP8. В настройках перехожим в Editor → Code Stile → Python. В поле Hard wrap at устанавливаем значение 79. В поле Wrap on typing устанавливаем значение Yes. Теперь справа от кода мы будем видеть линию, которая ограничивает длину строки в 79 символов, но при необходимости можно за неё вылезти.

  • Список всех горячих клавиш в PyCharm

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

© Habrahabr.ru