Как опубликовать консольную утилиту на PyPI за 1 минуту

Разработав консольную утилиту, вы решаетесь опубликовать её на PyPI. Ну правда, что может быть лучше, чем сделать её доступной через pip install? Погуглив, что для этого надо, вы, возможно, наткнётесь на единственный найденный мной пост по теме, который мало того что от 2014 года, так ещё и требует от вас создать кучу папок и файлов для совершенно ненужных (вам) вещей.



Как же решить эту задачу без лишней головной боли в 2019 году? Я уже задавался этим вопросом и поэтому, прочитав тонну документации, создал для вас этот туториал. Вот пошаговая инструкция.



1. Создайте аккаунт на PyPI (ссылка для регистрации)



2. Создайте точку входа в приложение (например, файл entry.py со следующим содержимым)



def main():
    print("It's alive!")


3. Установите poetry



curl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | python
source $HOME/.poetry/env


(poetry можно установить и по-другому, например, pip install --user poetry — прим. перев.)



4. Создайте окружение



cd myproject # Перейдите в папку проекта, который будем паковать
poetry init


5. Настройте консольную команду (для этого добавьте следующие строки в появившийся файл pyproject.toml)



[tool.poetry.scripts]
APPLICATION-NAME = 'entry:main'


APPLICATION-NAME надо поменять на имя консольной команды.



6. Опубликуйте утилиту! (используйте имя пользователя и пароль из шага 1)



poetry publish --username PYPI_USERNAME --password PYPI_PASS --build


Готово! Теперь другому человеку для установки достаточно всего двух команд:



$ sudo pip install PROJECT-NAME
$ APPLICATION-NAME


Где PROJECT-NAME — это имя, которое вы дали проекту на шаге 4, а APPLICATION-NAMEэто имя команды из шага 5.






Обновление версии



Всякий раз, когда вы хотите обновить модуль, просто измените номер версии в файле pyproject.toml:



version = "0.1.0"


И повторите шаг 6:



poetry publish --username PYPI_USERNAME --password PYPI_PASS --build





Бонус: настраиваем Travis для авто-публикации



Добавьте следующие строки в файл .travis.yml



language: python
dist: xenial
before_install:
  - curl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | python
  - source $HOME/.poetry/env
install:
  - poetry install
script:
  - poetry build
deploy:
  - provider: script
    skip_cleanup: true
    script: poetry publish --username $PYPI_USER --password $PYPI_PASS
    on:
      branch: master
      python: '3.7'
      tags: true


И установите переменные окружения PYPI_USER и PYPI_PASS на travis-ci.com. После этого можно будет публиковать пакет с помощью команд:



git tag -a v1.2 # Replace version number with yours
git push --tags

Poetry: новый менеджер зависимостей в Python
В последнее время в экосистеме Python часто стали появляться инструменты для управления зависимостями. Оно понятно, стандартный pip уже не отвечает современным требованиям: неудобная работа с зависимостями, много ручной работы при подготовке пакетов, проблемы при установке и обновлении и много чего другого.

С недавних пор я начал использовать новый менеджер под названием Poetry. Именно о нём сегодня пойдёт речь.


Функциональные возможности Poetry:



  • Управление зависимостями через toml файл (прощай, requirements.txt)

  • Автоматическое создание изолированного виртуального окружения Python (теперь не нужно для этого вызывать virtualenv)

  • Удобное создание пакетов (отныне не нужно копипастить создавать setup.py каждый раз)

  • poetry.lock файл для фиксирования версий зависимостей


А особенно радует тандем при работе с pyenv. О pyenv я писал три года назад.




Установка


Исходный код проекта лежит на github. Для установки необходимо выполнить команду:






curl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | python

Если установка прошла успешно, то убедиться в этом можно вызвав:


$ poetry --version
Poetry 0.12.8

Стартуем!


Создаём новый проект my-demo-project:


$ poetry new my-demo-project

Заходим в папку:


$ cd my-demo-project/
~/my-demo-project$ ls
README.rst my_demo_project pyproject.toml tests

Poetry автоматически создал все необходимые файлы для будущего пакета, но наибольший интерес представляет файл с названием pyproject.toml, этот файл можно рассматривать как продвинутую альтернативу старичку requirements.txt. Взглянем на содержимое:


[tool.poetry]
name = "my-demo-project"
version = "0.1.0"
description = ""
authors = ["Your Name you@example.com"]

[tool.poetry.dependencies]
python = "^3.6"

[tool.poetry.dev-dependencies]
pytest = "^3.0"

[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"

Формат файла TOML. Раздел tool.poetry предназначен для описания проекта: название, версия, краткая информация о проекте и т.д. Далее следует tool.poetry.dependencies, именно здесь будут указаны все production зависимости. Их можно указать вручную (привет, requirements.txt), но мы так делать не будем (привет, npm!). Раздел tool.poetry.dev-dependencies предназначен для зависимостей во время разработки (привет, pytest, tox!)


Добавляем зависимости


Давайте добавим к проекту зависимость в виде Luigi.


~/my-demo-project$ poetry add luigi==2.8.0

Creating virtualenv my-demo-project-py3.6 in /home/user/.cache/pypoetry/virtualenvs
Updating dependencies
Resolving dependencies... (24.1s)

Package operations: 12 installs, 0 updates, 0 removals

Writing lock file
  - Installing docutils (0.14)
  - Installing lockfile (0.12.2)
  - Installing six (1.11.0)
  - Installing atomicwrites (1.2.1)
  - Installing attrs (18.2.0)
  - Installing more-itertools (4.3.0)
  - Installing pluggy (0.8.0)
  - Installing py (1.7.0)
  - Installing python-daemon (2.1.2)
  - Installing tornado (4.5.3)
  - Installing luigi (2.8.0)
  - Installing pytest (3.10.1)

Обратите внимание, что Poetry автоматически создал виртуальное окружение через virtualenv при добавлении пакета (т.к. ранее оно не было создано). Все окружения находятся по пути ~/.cache/pypoetry/virtualenvs


Если снова открыть pyproject.toml, то можно увидеть новую запись в разделе зависимостей:


[tool.poetry.dependencies]
python = "^3.6"
luigi = "=2.8.0"

Всю "грязную" работу за нас делает Poetry. Чтобы добавить зависимость для разработки достаточно указать флаг —dev:


$ poetry add tox --dev

Using version ^3.5 for tox
Updating dependencies
Resolving dependencies... (6.3s)
Package operations: 4 installs, 0 updates, 0 removals

Writing lock file
  - Installing filelock (3.0.10)
  - Installing toml (0.10.0)
  - Installing virtualenv (16.1.0)
  - Installing tox (3.5.3)

Смотрим содержимое pyproject.toml ещё раз:


[tool.poetry.dev-dependencies]
pytest = "^3.0"
tox = "^3.5"

Чтобы удалить зависимость нужно выполнить:


~/my-demo-project$ poetry remove luigi

Сборка пакета


Отныне забудьте про головную боль с ручным созданием setup.py, прописыванием туда всех зависимостей и запоминанием команд для сборки через pip. Всё стало в разы проще. Чтобы собрать python пакет выполните:


~/my-demo-project$ poetry build

Building my-demo-project (0.1.0)
 - Building sdist
 - Built my-demo-project-0.1.0.tar.gz
 - Building wheel
 - Built my_demo_project-0.1.0-py3-none-any.whl

В папке dist будут сформированы пакеты. Чтобы поделиться своим творением с другими разработчиками, например через pypi, выполните:


~/my-demo-project$ poetry publish

Окружение


Для активации виртуального окружения необходимо выполнить команду:


~/my-demo-project$ poetry shell

Вывод


Проект Poetry появился 28 февраля 2018 года, последняя версия 0.12.8. Инструмент молодой, но перспективный и быстроразвивающийся. Уже сейчас он на голову выше старичка pip и по функциональным возможностям и по удобству использования. Советую вам его попробовать и поделиться мнением в комментариях к этой статье. За более подробной информацией об инструменте советую заглянуть на сайт с документацией.



https://pypi.org/project/poetry/
https://poetry.eustace.io/docs/
Goodbye Virtual Environments?

https://github.com/sivel/speedtest-cli
https://pypi.org/project/speedtest-cli/
https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
chmod +x и запустить в консоли



Тест скорости сети на busybox






Docker на i386-ом компьютере
https://launchpad.net/ubuntu/+source/docker.io
https://hub.docker.com/r/i386/
https://hub.docker.com/r/i386/centos/

Centos 6

docker search i386/centos
docker pull i386/centos:centos6
docker run --name centos6.9_bash -it i386/centos:centos6 /bin/bash
docker ps -a

docker start centos6.9_bash
docker attach centos6.9_bash

yum install epel-release
yum install python34

docker export centos6.9_bash | docker import - uzverss/centos6.9_i386_cython
docker images
docker save uzverss/centos6.9_i386_cython > centos6.9_i386_cython.tgz
docker rmi uzverss/centos6.9_i386_cython
docker load -i centos6.9_i386_cython.tgz
docker inspect uzverss/centos6.9_i386_cython
docker login
docker push uzverss/centos6.9_i386_cython:latest
docker logout
docker search uzverss
docker rmi uzverss/centos6.9_i386_cython
docker pull uzverss/centos6.9_i386_cython:latest
docker rm centos6.9_bash
docker run --name centos6.9_bash -it uzverss/centos6.9_i386_cython /bin/bash

Centos 7

docker pull i386/centos:latest
docker run --name centos7_bash -it i386/centos:latest /bin/bash



если есть необходимость, то ещё установить python-tools
http://ithelp21.ru/ustanovka-python-3-6-na-centos/

cd /usr/src
curl -O https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz
tar xf Python-3.6.5.tar.xz
cd Python-3.6.5

./configure
make
make install

Сборка с оптимизацией



http://rpm.pbone.net/

вместо make install checkinstall



cd
curl -O https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py

pip install -U pip
pip install -U pyrasite
pip install -U virtualenv
pip install -U xonsh
pip install -U cython



exec "$SHELL"
pyenv update
pyenv versions
pyenv install 3.6.5


напоминалка по командам centos
https://habr.com/post/301292/

отображение команд и опций
# yum help

список названий пакетов из репозиторий
# yum list

список всех доступных пакетов
# yum list available

список всех установленных пакетов
# yum list installed

установлен ли указанный пакет
# yum list installed httpd

список установленных и доступных пакетов
# yum list all

список пакетов, относящихся к ядру
# yum list kernel

отображение информации о пакете
# yum info httpd

список зависимостей и необходимых пакетов
# yum deplist httpd

найти пакет, который содержит файл
# yum provides "*bin/top"

поиск пакета по имени и описанию
# yum search httpd

# yum search yum

получить информацию о доступных обновлениях безопасности
# yum updateinfo list security

вывести список групп
# yum grouplist

вывести описание и содержимое группы
# yum groupinfo "Basic Web Server"

установка группы пакетов «Basic Web Server»
# yum groupinstall "Basic Web Server"

удаление группы
# yum groupremove "Basic Web Server"

Проверка на доступные обновления
# yum check-update

список подключенных репозиториев
# yum repolist

информация об определенном репозитории
# yum repoinfo epel

информация о пакетах в указанном репозитории
# yum repo-pkgs epel list

установить все пакеты из репозитория
# yum repo-pkgs reponame install

удалить пакеты установленные из репозитория
# yum repo-pkgs reponame remove

создать кэш
# yum makecache

проверить локальную базу rpm (поддерживаются параметры dependencies, duplicates, obsoletes, provides)
# yum check

# yum check dependencies

просмотр yum истории (вывод списка транзакций)
# yum history list

просмотр информации определенной транзакции (установленные пакеты, установленные зависимости)
# yum history info 9

отмена транзакции
# yum history undo 9

повторить
# yum history redo 9

дополнительно можно просмотреть лог
# cat /var/log/yum.log

удалить пакеты сохраненные в кэше
# yum clean packages

удалить все пакеты и метаданные
# yum clean all

установить пакет
# yum install httpd

удаление пакета
# yum remove httpd

обновить пакет
# yum update httpd

обновить все пакеты
# yum update

обновить до определенной версии
# yum update-to

установить из локальной директории (поиск/установка зависимостей будут произведены из подключенных репозиториев)
# yum localinstall httpd.rpm

или
# yum install httpd.rpm

установить с http
# yum localinstall http://server/repo/httpd.rpm

откатиться к предыдущей версии пакета
# yum downgrade

переустановка пакета (восстановление удаленных файлов)
# yum reinstall httpd

удаление ненужных более пакетов
# yum autoremove

создание локальных репозиториев (createrepo ставится отдельно)
# createrepo

установка обновлений по расписанию (yum-cron устанавливается отдельно)
# yum-cron



Опции Yum

ответить «yes» при запросе,
-y

# yum update -y

ответить «no» при запросе
--assumeno

использовать Yum без плагинов
--noplugins

или отключить определенный плагин
--disableplugin=fastestmirror

включить плагины, которые установлены, но отключены
# yum --enableplugin=ps

включить отключенный репозиторий
# yum update -y --enablerepo=epel

отключить репозиторий
# yum update -y --disablerepo=epel

скачать пакеты, но не устанавливать
(на Centos 7 x86_64 будут скачаны в '/var/cache/yum/x86_64/7/base/packages/')
# yum install httpd --downloadonly


Cледующие команды доступны после установки пакета yum-utils

найти из какого репозитория установлен пакет
# find-repos-of-install httpd

найти процессы, пакеты которых обновлены и требуют рестарта
# needs-restarting

запрос к репозиторию, узнать зависимости пакета, не устанавливая его
# repoquery --requires --resolve httpd

синхронизировать yum репозиторий updates в локальную директорию repo1
# reposync -p repo1 --repoid=updates

проверить локальный репозиторий на целостность
# verifytree URL

завершить транзакции
# yum-complete-transaction

установить необходимые зависимости для сборки RPM пакета
# yum-builddep

управление конфигурационными опциями и репозиториями yum
# yum-config-manager

запрос к локальной базе yum, отображение информации о пакете
(использованная команда, контрольная сумма, URL с которого был установлен и другое)
# yumdb info httpd

скачать rpm пакеты из репозитория
# yumdownloader

скачать src.rpm пакет из репозитория
(должен быть подключен соответствующий репозиторий, например в '/etc/yum.repos.d/CentOS-Sources.repo' в CentOS)
yumdownloader --source php


Конфигурационные файлы Yum и их расположение

Основной конфигурационный файл
/etc/yum.conf

директория, с конфигурациями (например, yum плагины)
/etc/yum/

директория, содержащая информацию о репозиториях
/etc/yum.repos.d/


Некоторые опции yum.conf:

Директория, где yum хранит кэш и файлы базы (по умолчанию '/var/cache/yum')
cachedir=/var/cache/yum/$basearch/$releasever

Определяет должен или нет Yum хранить кэш заголовков и пакетов после успешной установки. Значения: 0 или 1. (по умолчанию 1)
keepcache=1

уровень вывода отладочных сообщений. Значения: 1-10 (по умолчанию 2)
debuglevel=2

лог файл (по умолчанию '/var/log/yum.log')
logfile=/var/log/yum.log

обновлять устаревшие пакеты
obsoletes=1

проверка подписи пакетов. Значения: 0 или 1 (по умолчанию 1)
gpgcheck=1

включение плагинов. Значения: 0 или 1 (по умолчанию 1)
plugins=1



Некоторые полезные плагины

Добавляет опцию командной строки для просмотра ченжлога перед/после обновлениями
yum-plugin-changelog

выбирает более быстрые репозитории из списка зеркал
yum-plugin-fastestmirror

добавляет команды keys, keys-info, keys-data, keys-remove, которые позволяют работать с ключами.
yum-plugin-keys

блокировать указанные пакеты от обновления, команда yum versionlock
yum-plugin-versionlock

добавление команд yum verify-all, verify-multilib, verify-rpm для проверки контрольных сумм пакетов
yum-plugin-verify


Работа Yum через прокси сервер

Для всех пользователей:
добавить в секцию [main] в /etc/yum.conf
proxy="http://server:3128"

при необходимости указать пароль, добавить
proxy_proxy_username=user
proxy_password=pass

указать прокси для отдельного пользователя
# export http_proxy="http://server:3128"


Alpine Linux
https://alpinelinux.org/downloads/
https://wiki.alpinelinux.org/wiki/Alpine_Linux_package_management
https://pkgs.alpinelinux.org/packages
https://wiki.alpinelinux.org/wiki/XFCE_Setup

docker search i386/alpine
docker pull i386/alpine
docker run --name alpine_sh -it i386/alpine /bin/sh

apk update
apk info
apk search
apk add python3
apk add cython

cd
wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py

pip install -U pip
pip install -U pyrasite
pip install -U virtualenv
pip install -U xonsh

docker export alpine_sh | docker import - uzverss/alpine_i386_cython
docker push uzverss/alpine_i386_cython

чтобы подключаться по ssh под рутом
vi /etc/ssh/sshd_config
PermitRootLogin yes
затем /etc/init.d/sshd restart


uzverss docker команды
установка Django в virtualenv с помощью pip через proxy с pyenv


Vim — уникальный по своей гибкости редактор, который при должной настройке может едва ли не идеально удовлетворять все пожелания работающего с ним. Правда эта настройка может продолжаться месяцы, а то и годы, что является и достоинством, и недостатком vim’а. Существует множество статей и туториалов по использованию Vim для разработки на Python и Django, надеюсь мне удастся рассказать что-то новое. В своей статье я постараюсь по минимуму упоминать плагины общего назначения, вроде NERDTree или surround.vim и опишу несколько более специализированных расширений и настроек, которые существенно упростили процесс работы на Python.



Настроить Vim под Django оказалось делом довольно непростым, в отличие от использования с тем же Rails, для которого rails.vim решает 80% всех проблем. Но к сожалению Tim Pope ничего подобного для питона не написал, поэтому пришлось собирать все по частям. Вкратце, о чем пойдет речь:


  • python-mode

  • tagbar

  • pydiction

  • neocomplcache

Все ниженаписанное было опробовано в gVim для Linux.



Python-mode


Просто низкий поклон Кириллу Клёнову, разработчику данного расширения. Отлично устанавливается и с помощью vundle, и через pathogen и так же отлично работает.



Python-mode устанавливает свои настройки для питон-файлов. Если вас это не устраивает (мне например не нужен set number, который он добавляет), допишите необходимые настройки в .vimrc. Вот пример моих настроек:



let g:pymode_options = 0
let g:pymode_lint_write = 0 “не проверять при каждом сохранении
let g:pymode_folding = 0 “мне не нужен авто-фолдинг
let g:pymode_rope_vim_completion = 0 “не использовать автодополнение rope


Как можно увидеть, я не использую автоматический фолдинг кода, также мне не нужна проверка pylint'ом при каждом сохранении файла(let g:pymode_lint_write = 0), вместо чего можно использовать команду :PyLint, повесив на нее какой-нибудь хоткей. К автодополнению вернемся позже.



Плагин предоставляет несколько удобных хоткеев для перемещения по объектам в питон-коде:

Сочетание клавиш Команда
K Показать документацию
<C-c>g Перейти к определению
\r Запустить код
[[ Перейти к предыдущему классу или функции
]] Перейти к следующему классу или функции
aC C Выполнить действие для класса. (vaC, daC, dC, yaC, yC, caC, cC)
iC То же, находясь внутри класса. (viC, diC, yiC, ciC)
aM M Выполнить действие для функции. (vaM, daM, dM, yaM, yM, caM, cM)
iM То же, находясь внутри функции. (viM, diM, yiM, ciM)
Отдельно хотелось бы отметить возможность использовать Rope, в частности команды :RopeGoToDefinition, :RopeFindOccurrences и другие возможности по поиску кода и рефакторингу. просмотреть полный список команд Rope и сокращения к ним можно с помощью :help RopeKeys. Кроме того по умолчанию включена поддержка virtualenv, что значит, что с помощью того же :RopeGoToDefinition вы можете спокойно перейти к определнию функции любой библиотеки, установленной в site-packages вашего virtualenv’а.



Просмотр кода


Хотя самым популярным плагином для этого является Taglist, мне больше нравится Tagbar, также основанный на ctags(которые нужно установить перед использованием плагина). Вешаем :TagbarToggle на какой-нибудь хоткей, например:
nnoremap <F8> :TagbarToggle<CR>
Выглядит это примерно так:







Пара дополнительных настроек:



let g:tagbar_autofocus = 1
let g:tagbar_sort = 0 "tagbar shows tags in order of they created in file
let g:tagbar_foldlevel = 0 "close tagbar folds by default


Кроме того можно настроить, с какой стороны будет появляться окно тагбара, какими будут отступы, иконки и т.д. Обо всем этом можно узнать через :help tagbar.



Автодополнение


Один из плагинов, который я мог бы посоветовать — Pydiction, дополняющий ключевые слова на основе большого файла словаря. У данного плагина очень много плюсов:


  • автодополнение происходит по клавише Tab, не нужно запоминать всякие комбинации с Ctrl

  • абсолютно никаких конфликтов, можно одновременно использовать Pydiction с omnicomplete

  • автодополнение не затрагивает другие типы файлов

  • умеет дополнять импортированные объекты

  • довольно легко можно добавить в словарь собственные модули: python pydiction.py module_name

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



Другой способ — использовать neocomplcache. Кроме установки плагина, нужно задать omnifunc для питоновских файлов:

autocmd FileType python setlocal omnifunc=pythoncomplete#Complete


Neocomplcache несколько хуже справляется с дополнением из модулей, зато дополняет не только ключевые слова из текущих файлов, но и просто строки. Кроме того присутствует опция автоматически всплывающего дополнения, которое включается с помощью задания настройки:

let g:neocomplcache_enable_at_startup = 1


Шаблоны Django


Vim подерживает синтаксис джанго-шаблонов и подсвечивает их, если задать файлу тип htmldjango. К сожалению автоматически при открытии Vim определяет этот тип только если в начале файла находится джанго-тэг. Решить это можно например с помощью такой функции:



fun! DetectTemplate()
  let n = 1
  while n < line("$")
    if getline(n) =~ '{%' || getline(n) =~ '{{'
      set ft=htmldjango
      return
    endif
    let n = n + 1
  endwhile
  set ft=html "default html
endfun


которую нужно запускать при открытии файла с раширением .html:

autocmd BufNewFile,BufRead *.html call DetectTemplate()


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



Случайные настройки




  • Питоновские отступы:
    autocmd FileType python setlocal ts=4 sts=4 sw=4
    



  • Если вы пользуетесь NERDTree, стоит добавить .pyc в список игнорируемых файлов:
    let NERDTreeIgnore=['\.pyc$']
    



  • простое сокращение для вставки дебаггера ipdb в код
    iab ipdb import ipdb; ipdb.set_trace()
    



  • сокращение для задания кодировки в начале файла:
    iab utf! # -*- coding: utf-8 -*-
    



  • убрать раздражающие всплывающие окна с документацией для omnicompletion:
    set completeopt-=preview
    



  • пара цветовых схем:darkspectrum, gruvbox, Lucius



Дополнительные ссылки


1. python-mode

github.com/klen/python-mode

2. Tagbar

github.com/majutsushi/tagbar

3. Pydiction

github.com/rkulla/pydiction

4. Neocomplcache

github.com/Shougo/neocomplcache

https://habrahabr.ru/post/173473/


image

Данная статья будет посвящена настройке vim, в которой я поделюсь своим «скромным» пониманием того, каким должен быть текстовый редактор, чтобы в нем было удобно/приятно/легко (нужное подчеркнуть) писать код также, как это сейчас возможно во всевозможных IDE типа PyCharm, SublimeText и т.п.

Весь процесс постараюсь описать как можно более подробно, чтобы вопросов по мере чтения для начинающих осваивать vim возникало как можно меньше.



Предыстория
Сам я знаком с vim не очень продолжительное время, однако, к его изучению и желанию использовать привело:


  • достаточное количество на хабре статей по vim

  • большое количество существующих плагинов

  • преимущественно, разработчики на Python занимаются написанием кода под Linux (хотя vim — кроссплатформенный)

  • собственное любопытство



В настоящее время я использую весьма часто vim как основной инструмент для разработки на Python и нисколько об этом не жалею. Если чего-либо нехватает, то проблема решается гуглением в течении пару минут. Поверьте, vim действительно стоит тех затраченных сил на его изучения. Это достаточно быстро себя «окупает». Было бы только желание и немножечко терпения.



Подготовительный этап
Итак. Перейдем непосредственно к подготовительному этапу. Нам понадобится:


  1. Vim версии 7.4 (получить нужное можно либо скачиванием из репозиториев, либо сборкой вручную)

  2. Python 2.7 (с установленным pip)

  3. Клиент для работы с git



После того, как вышеперечисленное у нас имеется, можно приступать непосредственно к настройке и «кастомизации».



Настройка


Самое первой проблемой для любого новичка, который решает обуздать vim, является vimscript. Vimscript — это скриптовый язык, предназначенный для vim. На нем мы будем описывать используемые плагины, горячие клавиши и все тому подобное, чтобы обеспечить себе простую и легкую работу в vim. Для ознакомления советую посетить вот этот и этот сайты. Там достаточно неплохо все описано, что, где, как, и почему.



Первым делом стоит рассказать о том, что конфигурационный файл vim находится в домашнем каталоге пользователя (~/) и называется .vimrc. В нем-то и будут расписываться моменты относительно того, какие шрифты, цветовая схема, хоткеи и т.п. будут использоваться.



Во-вторых, при настойке текстового редактора, иногда будет необходимо заходить в каталог .vim (это скрытый каталог, и он расположен также в домашнем каталоге юзера), в который будут помещен ряд необходимых файлов, рассортированных по каталогам.

Какие включает в себя подкаталоги исходный каталог .vim? Примерно такие:

.vim

|____after

|____autoload

|____colors

|____doc

|____ftplugin

|____indent

|____plugin

|____scripts

|____syntax



Однако, из всех вышеперечисленных каталогов нам понадобится лишь несколько:


  • colors — для цветовых схем/тем

  • indent — сюда будет скидывать файлы для работы с тегами HTML/XML и т.п.

  • scripts — для скриптов

  • syntax — файлы синтаксиса



В эти каталоги помещаем соответствующие файлы, взяв их, например, у меня.



До начала установки и работа с менеджером пакетов пропишем в консоли:

pip install pyflakes pep8 pylint ipython


В дальнейшем, эти библиотеки нам пригодятся для того, чтобы отслеживать качество своего кода: ошибки, соответствие его PEP8 и т.п. Последняя же в этом списке библиотека/пакет — ipython нам будет удобна для настройки своего «дебаггера».

Также нам еще необходимо установить Exuberant ctags. Скачать его можно отсюда либо поискать и установить через менеджер пакетов apt-get/aptitude/rmp/pacman/и т.п.



Менеджер плагинов


Для того, чтобы нам было проще с установкой и использованием плагином будем использовать Vundle. Vundle — это пакетный менеджер для Vim, способный:


  • настраивать и устанавливать плагины, указанные в. vimrc

  • обновлять плагины при необходимости

  • удалять неиспользуемые плагины



Однако прежде чем приступать к описанию необходимого набора плагинов в конфигурационном файле, сначала необходимо установить сам Vundle. Для этого делаем следующее:



git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim


После выполнение этой команды Vundle будет установлен в ~/.vim/bundle/Vundle.vim



Теперь добавим следующую часть в свой новосозданный .vimrc если его еще нет:



set nocompatible              " be iMproved, required
filetype off                  " required

"=====================================================
" Vundle settings
"=====================================================
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

Plugin 'gmarik/Vundle.vim'		" let Vundle manage Vundle, required

"---------=== Code/project navigation ===-------------
Plugin 'scrooloose/nerdtree' 	    	" Project and file navigation
Plugin 'majutsushi/tagbar'          	" Class/module browser

"------------------=== Other ===----------------------
Plugin 'bling/vim-airline'   	    	" Lean & mean status/tabline for vim
Plugin 'fisadev/FixedTaskList.vim'  	" Pending tasks list
Plugin 'rosenfeld/conque-term'      	" Consoles as buffers
Plugin 'tpope/vim-surround'	   	" Parentheses, brackets, quotes, XML tags, and more

"--------------=== Snippets support ===---------------
Plugin 'garbas/vim-snipmate'		" Snippets manager
Plugin 'MarcWeber/vim-addon-mw-utils'	" dependencies #1
Plugin 'tomtom/tlib_vim'		" dependencies #2
Plugin 'honza/vim-snippets'		" snippets repo

"---------------=== Languages support ===-------------
" --- Python ---
Plugin 'klen/python-mode'	        " Python mode (docs, refactor, lints, highlighting, run and ipdb and more)
Plugin 'davidhalter/jedi-vim' 		" Jedi-vim autocomplete plugin
Plugin 'mitsuhiko/vim-jinja'		" Jinja support for vim
Plugin 'mitsuhiko/vim-python-combined'  " Combined Python 2/3 for Vim

call vundle#end()            		" required
filetype on
filetype plugin on
filetype plugin indent on


Как вы видите, места где указаны Plugin 'ссылка_до_плагина' представляет собой ссылки в интернете эти плагины, которые Vundle будет скачивать и в последствии устанавливать. Для себя, я разбивал эти плагины на «категории», но это уже дело вкуса. Сами плагины:


  • NERDTree — навигация по файловой/директориям

  • TagBar — навигация по классам/функциям/переменным

  • vim-airline — строка статуса/состояния

  • FixedTaskList — поиск в файле FIXME, TODO и т.п.

  • conque-term — используем для вызова дебаггера

  • vim-surround — автозакрытие тегов HML/XML/и т.п.

  • vim-snipmate — сниппеты

  • python-mode — рефакторинг, документация, дебаггер Python и т.п.

  • jedi-vim — автодополнение для Python

  • vim-jinja — поддержка синтаксиса шаблонов Jinja



В качестве руководства/гайда по использованию Vundle можно зайти сюда. Однако для наших целей будет предостаточно одной:

:PluginInstall


Эта команда сканирует файл .vimrc на наличие списка плагинов прописанных в виде Plugin 'ссылка_до_плагина'.

Для того, чтобы запустить установку набора плагинов, заходим в vim/gvim и прописываем :PluginInstall. Придется немного подождать, поскольку каждый плагин, указанный выше в конфиге, будет скачан с githuba либо еще откуда-то и настроен до установок «по умолчанию», подождите пару минут. Каждый выкачанный и настроенный плагин отмечается как "+". Как только увидите, что все из списка подсвечены "+" — значит, все готово. И для дальнейшего использования необходимо будет перезапустить vim. Однако на этом все еще не оканчивается статья — все необходимо «подкрутить», чтобы работать в vim'е было комфортно.



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

Добавьте эти строчки в конец своего .vimrc файла:

"=====================================================
" General settings
"=====================================================
set backspace=indent,eol,start
aunmenu Help.
aunmenu Window.
let no_buffers_menu=1
set mousemodel=popup

set ruler
set completeopt-=preview
set gcr=a:blinkon0
if has("gui_running")
  set cursorline
endif
set ttyfast

" включить подсветку кода
syntax on
if has("gui_running")
" GUI? устаналиваем тему и размер окна
  set lines=50 columns=125
  colorscheme molokai
" раскомментируйте эти строки, если хотите, чтобы NERDTree/TagBar автоматически отображались при запуске vim
" autocmd vimenter * TagbarToggle
" autocmd vimenter * NERDTree
" autocmd vimenter * if !argc() | NERDTree | endif

" на маке vim?
if has("mac")
  set guifont=Consolas:h13
  set fuoptions=maxvert,maxhorz
else
" дефолтный GUI
  set guifont=Ubuntu\ Mono\ derivative\ Powerline\ 10
endif
else
" терминал?
  colorscheme myterm
endif

tab sball
set switchbuf=useopen

" отключаем пищалку и мигание
set visualbell t_vb= 
set novisualbell       

set enc=utf-8	     " utf-8 по дефолту в файлах
set ls=2             " всегда показываем статусбар
set incsearch	     " инкреминтируемый поиск
set hlsearch	     " подсветка результатов поиска
set nu	             " показывать номера строк
set scrolloff=5	     " 5 строк при скролле за раз

" отключаем бэкапы и своп-файлы
set nobackup 	     " no backup files
set nowritebackup    " only in case you don't want a backup file while editing
set noswapfile 	     " no swap files

" прячем панельки
"set guioptions-=m   " меню
set guioptions-=T    " тулбар
"set guioptions-=r   "  скроллбары

" настройка на Tab
set smarttab
set tabstop=8

"  при переходе за границу в 80 символов в Ruby/Python/js/C/C++ подсвечиваем на темном фоне текст
augroup vimrc_autocmds
    autocmd!
    autocmd FileType ruby,python,javascript,c,cpp highlight Excess ctermbg=DarkGrey guibg=Black
    autocmd FileType ruby,python,javascript,c,cpp match Excess /\%80v.*/
    autocmd FileType ruby,python,javascript,c,cpp set nowrap
augroup END

" указываем каталог с настройками SnipMate
let g:snippets_dir = "~/.vim/vim-snippets/snippets"

" настройки Vim-Airline
set laststatus=2
let g:airline_theme='badwolf'
let g:airline_powerline_fonts = 1
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#formatter = 'unique_tail'

" TagBar настройки
map <F4> :TagbarToggle<CR>
let g:tagbar_autofocus = 0 " автофокус на Tagbar при открытии

" NerdTree настройки
" показать NERDTree на F3
map <F3> :NERDTreeToggle<CR>
"игноррируемые файлы с расширениями
let NERDTreeIgnore=['\~$', '\.pyc$', '\.pyo$', '\.class$', 'pip-log\.txt$', '\.o$']  

" TaskList настройки
map <F2> :TaskList<CR> 	   " отобразить список тасков на F2

" Работа буфферами
map <C-q> :bd<CR> 	   " CTRL+Q - закрыть текущий буффер


Python-mode
Очень нравится этот плагинчик, который кстати, сделан klen. Предоставляет море возможностей при работе с кодом:


  • рефакторинг

  • автодополнение

  • работа с дебаггером

  • автофикс PEP8 ошибок

  • и многое-многое другое...



Добавьте эти строчки в конец своего .vimrc файла:

"=====================================================
" Python-mode settings
"=====================================================
" отключаем автокомплит по коду (у нас вместо него используется jedi-vim)
let g:pymode_rope = 0
let g:pymode_rope_completion = 0
let g:pymode_rope_complete_on_dot = 0

" документация
let g:pymode_doc = 0
let g:pymode_doc_key = 'K'
" проверка кода
let g:pymode_lint = 1
let g:pymode_lint_checker = "pyflakes,pep8"
let g:pymode_lint_ignore="E501,W601,C0110"
" провека кода после сохранения
let g:pymode_lint_write = 1

" поддержка virtualenv
let g:pymode_virtualenv = 1

" установка breakpoints
let g:pymode_breakpoint = 1
let g:pymode_breakpoint_key = '<leader>b'

" подстветка синтаксиса
let g:pymode_syntax = 1
let g:pymode_syntax_all = 1
let g:pymode_syntax_indent_errors = g:pymode_syntax_all
let g:pymode_syntax_space_errors = g:pymode_syntax_all

" отключить autofold по коду
let g:pymode_folding = 0

" возможность запускать код
let g:pymode_run = 0


Jedi-vim
Очень полезный плагин, предоставляющий отличные возможности автокомплита, go to definition, и т.п.

В своем конфиге добавьте в конец этот фрагмент:

" Disable choose first function/method at autocomplete
let g:jedi#popup_select_first = 0


Этой строчкой я отрубаю в автокомплите выбор первой строки из списка выбора метода/библиотеки/класса автокомплита. Это связано с тем, что достаточно часто я выбираю не первую строку из нее, а автоматический выбор раздражает.



После настройки jedi-vim получаем отображение документации по функции

image

и добротный автокомплит по аргументам функций

image



Хоткеи
Тут сложно что-либо посоветовать. У всех различное понимание того, какие хоткеи нужны, а какие-нет. Могу лишь сказать, что для желающих, найти/написать необходимые кусочки vimscript, переопределяющих поведение стандартных горячих клавиш — очень много.

Добавьте этот фрагмент в конец конфига:

"=====================================================
" User hotkeys
"=====================================================
" ConqueTerm
" запуск интерпретатора на F5
nnoremap <F5> :ConqueTermSplit ipython<CR>
" а debug-mode на <F6>
nnoremap <F6> :exe "ConqueTermSplit ipython " . expand("%")<CR>
let g:ConqueTerm_StartMessages = 0
let g:ConqueTerm_CloseOnEnd = 0
" проверка кода в соответствии с PEP8 через <leader>8
autocmd FileType python map <buffer> <leader>8 :PymodeLint<CR>

" автокомплит через <Ctrl+Space>
inoremap <C-space> <C-x><C-o>

" переключение между синтаксисами
nnoremap <leader>Th :set ft=htmljinja<CR>
nnoremap <leader>Tp :set ft=python<CR>
nnoremap <leader>Tj :set ft=javascript<CR>
nnoremap <leader>Tc :set ft=css<CR>
nnoremap <leader>Td :set ft=django<CR>


Отступы, табы, пробелы для разных языков
Это связано с тем, что в том же Python табы не рекомендуется к использованию. Поэтому будем заменять их на пробелы. Один таб = 4 пробелам. Плюс ко всему необходимо помнить, что всегда нужно сделать переход на следующую строку + отступ, чтобы было соответствие операторам for/if/while/и т.п.

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

Добавьте этот фрагмент в конец своего конфига:

"=====================================================
" Languages support
"=====================================================
" --- Python ---
"autocmd FileType python set completeopt-=preview " раскомментируйте, в случае, если не надо, чтобы jedi-vim показывал документацию по методу/классу
autocmd FileType python setlocal expandtab shiftwidth=4 tabstop=8
\ formatoptions+=croq softtabstop=4 smartindent
\ cinwords=if,elif,else,for,while,try,except,finally,def,class,with
autocmd FileType pyrex setlocal expandtab shiftwidth=4 tabstop=8 softtabstop=4 smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class,with

" --- JavaScript ---
let javascript_enable_domhtmlcss=1
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd BufNewFile,BufRead *.json setlocal ft=javascript

" --- HTML ---
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags

" --- template language support (SGML / XML too) ---
autocmd FileType html,xhtml,xml,htmldjango,htmljinja,eruby,mako setlocal expandtab shiftwidth=2 tabstop=2 softtabstop=2
autocmd bufnewfile,bufread *.rhtml setlocal ft=eruby
autocmd BufNewFile,BufRead *.mako setlocal ft=mako
autocmd BufNewFile,BufRead *.tmpl setlocal ft=htmljinja
autocmd BufNewFile,BufRead *.py_tmpl setlocal ft=python
let html_no_rendering=1
let g:closetag_default_xml=1
let g:sparkupNextMapping='<c-l>'
autocmd FileType html,htmldjango,htmljinja,eruby,mako let b:closetag_html_style=1
autocmd FileType html,xhtml,xml,htmldjango,htmljinja,eruby,mako source ~/.vim/scripts/closetag.vim

" --- CSS ---
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType css setlocal expandtab shiftwidth=4 tabstop=4 softtabstop=4


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



После настройки мы получим примерно такой vim:

image

В режиме работы с HTML/JavaScript/XML будет все выглядеть примерно так:

image



Если кому-либо нужен больший функционал (например поддержка автокомплита для любых иных языков), то могу посоветовать лишь поискать необходимые плагины на GitHub'е или на офицальном сайте сайте vim'a.



Полезные ссылки:
Раздел script сайта vim.org — тут

wikia по vim'у — тут

OpenVim: уроки по азам в vim — тут

Шрифты для vim-airline — тут



Мой конфиг для vim на GitHub

https://habrahabr.ru/post/224979/
http://freecoder.ru/content/vim-kak-ide-dlya-razrabotki-na-python
http://linux.cpms.ru/?p=8339




развернуть

1. Python


открыть в браузере адреса
http://0.0.0.0:8080/ или http://localhost:8080/ или http://127.0.0.1:8080/
без указания порта запустит сервер на порту 8000

python -m SimpleHTTPServer
python3 -m http.server

Если есть файл index.html в папке, из которой дан старт команде, то он будет открыт в браузере по умолчанию

запустить HTTP для всех локальных интерфейсов на порту 8080

python -m SimpleHTTPServer 8080 # python2
python3 -m http.server 8080

запустить в папке, где находится каталог cgi-bin, со сценарием cgi

python3 -m http.server 8080 --cgi

запускает сервер SMTP на порту 1025
python -m smtpd -n -c DebuggingServer localhost:1025

запустить сервер SMTP на стандартном порту 25
sudo python -m smtpd -n -c DebuggingServer localhost:25

Привязка любого номера порта ниже 1024 требует привилегии root, в таком случае используйте sudo перед командой

Twisted (Python)
$ twistd -n web -p 8000 --path .
или
$ python -c 'from twisted.web.server import Site; from twisted.web.static import File; from twisted.internet import reactor; reactor.listenTCP(8000, Site(File("."))); reactor.run()'

2. busybox httpd web server


busybox httpd --help # show available options

busybox httpd -p 127.0.0.1:8080 -h /var/www/ # start httpd
# busybox httpd -f -v -p 8080 # вариант

pkill busybox # to stop busybox httpd

по умолчанию BusyBox httpd связывает порт 80 со всеми доступными сетевыми интерфейсами и читает /etc/httpd.conf конфигурационный файл.

3. webfsd HTTP server


конфигурации webfsd хранятся в файле /etc/webfsd.conf

sudo apt-get install webfs # install webfs in Debian/Ubuntu

sudo service webfs start # start the webfs server

$ webfsd -F -p 8000

По умолчанию webfsd связывает порт 8000 со всеми доступными сетевыми интерфейсами с /var/www/html как корневую папку документов в Debian.

4. netcat as a simple web server


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



напишите в cat /var/www/index.html с тем, что вы хотите сделать, как /sbin/ifconfig eth0
чтобы остановить скрипт нажмите CTRL+C

5. php inbuilt web server



php -S 127.0.0.1:8080

php -S 127.0.0.1:8080 -t $HOME/dev/www

Если есть index.html или index.php файл, то он будет выполнен с помощью этого простого сервера PHP, теперь проверить его можно в вашем веб-браузере.

########################################################################

JS + Node


http://www.nodebeginner.ru/
https://metanit.com/web/nodejs/3.1.php

Создайте файл server.js в корневой директории вашего проекта и поместите туда следующий код:



выполните ваш скрипт в Node.js:
node server.js

http-server (Node.js)
$ npm install -g http-server # install dependency
$ http-server -p 8000

Примечание: Этот сервер делает странные вещи с относительными путями. Например, если у вас есть файл /tests/index.html, он загрузит index.html, если вы перейдете в /test, но будет обрабатывать относительные пути так, как будто они исходят из /.

node-static (Node.js)
$ npm install -g node-static # install dependency
$ static -p 8000

Go


https://metanit.com/go/web/1.1.php
Базовый веб сервер на Go
Простейший веб-сайт на Go

Создайте файл server.go в корневой директории вашего проекта и поместите туда следующий код:



выполните ваш скрипт
go run server.go

https://funprojects.blog/2021/04/11/a-web-server-in-1-line-of-bash/

Bash




Веб-сервер Bash, вызывающий команды Bash



Пример использования заголовков figlet, а также датчиков и утилиты vmstat:




https://gist.github.com/willurd/5720255

Ruby


$ ruby -rwebrick -e'WEBrick::HTTPServer.new(:Port => 8000, :DocumentRoot => Dir.pwd).start'

Ruby 1.9.2+
$ ruby -run -ehttpd . -p8000

adsf (Ruby)
$ gem install adsf # install dependency
$ adsf -p 8000

Sinatra (Ruby)
$ gem install sinatra # install dependency
$ ruby -rsinatra -e'set :public_folder, "."; set :port, 8000'

Perl


$ cpan HTTP::Server::Brick # install dependency
$ perl -MHTTP::Server::Brick -e '$s=HTTP::Server::Brick->new(port=>8000); $s->mount("/"=>{path=>"."}); $s->start'

Plack (Perl)
$ cpan Plack # install dependency
$ plackup -MPlack::App::Directory -e 'Plack::App::Directory->new(root=>".");' -p 8000

Mojolicious (Perl)
$ cpan Mojolicious::Lite # install dependency
$ perl -MMojolicious::Lite -MCwd -e 'app->static->paths->[0]=getcwd; app->start' daemon -l http://*:8000

Erlang


$ erl -s inets -eval 'inets:start(httpd,[{server_name,"NAME"},{document_root, "."},{server_root, "."},{port, 8000},{mime_types,[{"html","text/html"},{"htm","text/html"},{"js","text/javascript"},{"css","text/css"},{"gif","image/gif"},{"jpg","image/jpeg"},{"jpeg","image/jpeg"},{"png","image/png"}]}]).'

Java


jwebserver -p 8080


IIS Express
C:\> "C:\Program Files (x86)\IIS Express\iisexpress.exe" /path:C:\MyWeb /port:8000


https://fixmynix.com/create-instant-lightweight-web-server-command-line/
http://uzverss.livejournal.com/33187.html#www
Как сделать простой веб-сайт за один час
Расшариваем веб-сайт на localhost в глобальную сеть интернет.


В данной статье рассматривается бесплатный хостинг для django проектов - pythonanywhere.com.
Для начала заходим на сайт - https://www.pythonanywhere.com/pricing/
Находим и кликаем по ссылке Create a Beginner account
Открывается форма регистрации. В ней вводим данные для регистрации (имя, почта, пароль). После регистрации нас просят подтвердить почту, что и необходимо сделать.Read more... )
http://pygo.ru/django/base/django-hosting-pythonanywhere.html
Деплоим на PythonAnywhere из GitHub
http://uzverss.livejournal.com/58379.html



Ставим пакеты stdeb и python-all:
$ sudo apt-get install stdeb python-all
Теперь находим архив с нужным нам модулем на pypi.python.org и скачиваем его себе:
$ wget https://pypi.python.org/packages/source/g/grab/grab-0.6.30.tar.gz
Теперь можно заглянуть в документацию на stdeb и посмотреть, как это делается.
Read more... )
http://vladimir-stupin.blogspot.ru/2013/10/deb-python.html
https://pypi.python.org/pypi/stdeb
https://blog.truecrux.org/post/xxxiii




развернуть

Сайты



https://www.djangoproject.com/
http://djbook.ru/
http://djangosearch.com/
https://www.djangosites.org/
https://www.django-cms.org/


Блоги



https://vk.com/django_framework
http://django-tutorial.blogspot.ru/
https://pythlife.blogspot.ru/search/label/django
http://sharelink.ru/
http://dikiigrigorii.ru/


Статьи



Наш опыт работы с Django, или 10 полезных модулей, облегчающих жизнь
Эффективный Django. Часть 1
Ещё 10 батареек для джанго
Django DB Mailer — простая и удобная батарейка, для отправки почтовых сообщений в вашем проекте
Улучшаем админку
DjangoCMS2.0 — быстрее, больше, эффективней
Python Django CMS - FeinCMS
------------------------------------------------------------------------
Удобная работа с картинками в Django
Шаблон проекта на Джанго с инструментами сборки и утилитами
Простой блог с комментариями на Django: разработка и развертывание для самых маленьких
Django: первые страницы
Установка Django CMS в Ubuntu 16.04 64bit
Архитектура универсального проекта Django
------------------------------------------------------------------------
Создаем свое первое веб-приложение при помощи Django
Современный стек сборки и публикации сайтов на Django
Разработка своего плагина для Django-CMS
Создание модуля для Django с нуля
------------------------------------------------------------------------
Быстрое начало. Развертывание веб-приложения Python (Django или Flask) в Службе приложений Azure
Как я построил проект на Django, Django REST Framework, Angular 1.1.x и Webpack
Django проект: с нуля до работающего сервера
------------------------------------------------------------------------
Setting up Django and your web server with uWSGI and nginx
Setting up Nginx and uWSGI for CGI scripting
Django. Запуск проекта в связке uWSGI и Nginx
Развёртывание Django с uWSGI
Django на production. uWSGI + nginx. Подробное руководство
Django + Python3 + Nginx + Gunicorn + DO
Настраиваем Django + virtualenv + nginx + gunicorn + PostgreSQL + memcached + letsencrypt на Ubuntu 16.04
обслуживание приложений django с помощью uwsgi и nginx в debian 8
React+Django как написать Hello World
Hello-World туториал на React/Django/RabbitMQ/Websockets
Django - Урок 001. Развёртывание сайта на Django + PostgreSQL + Gunicorn + Nginx
Как установить Django + Postgres + Nginx + Gunicorn на Ubuntu 14.04.
Настройка Gunicorn и uWSGI, сравнение производительности
Запуск Django сайта на nginx + Gunicorn + SSL
------------------------------------------------------------------------
https://github.com/lampslave/blog
Полезные Django-модули
Полезные Django apps
------------------------------------------------------------------------
Асинхронные задания в Django с Celery
Как настроить Celery в Django
------------------------------------------------------------------------
Создание sitemap.xml в Django

SublimeText для Python + Django
Бесплатный django хостинг
установка Django в virtualenv с помощью pip через proxy с pyenv


Книги



http://padabum.net/search.php?tag=Django
http://scanlibs.com/tag/django/
Подборка книг по Django
Python, Django и PyCharm для начинающих
ftp Django1
ftp Django2


Подборки



https://vk.com/wall-101965347?q=django
https://vk.com/wall-80984752?q=Django
https://habrahabr.ru/hub/django/
https://toster.ru/tag/django/info
http://snakeproject.ru/rubric/rubric.php?id=5
http://djangosimple.blogspot.ru/search/label/django
http://podavan.ru/tag/django/
http://acman.ru/django/
http://pep8.ru/blog/tag/django
https://www.8host.com/blog/tag/django/
https://code-live.ru/tag/django/
http://m05quit0.ru/tag/django/
http://www.odmin4eg.ru/tag/django/
http://dikiigrigorii.ru/articles/tag/django/
http://webdevelop.info/category/django/
http://knigun.com/tags/django/
http://pygo.ru/
http://practice.keyfire.ru/blog/tags/praktikum/
http://webdevelop.info/category/django/
http://programmingnew.tk/blog/veb_django/1-0-3
http://zabaykin.ru/?tag=django
http://www.lexev.org/tag/django/
http://www.odmin4eg.ru/tag/django/
https://evileg.com/ru/knowledge/django/


Переводы



https://rtfm.co.ua/books-translations/django-book/


Самоучители



http://djbook.ru/rel1.9/intro/
http://ilnurgi1.ru/docs/django/
http://tutorial.djangogirls.org/ru/
http://www.tutorialspoint.com/django/index.htm
http://snakeproject.ru/python/ver1.3.htm
https://pythonhosted.org/redsolutioncms/index.html
http://ait-susu.narod.ru/django.htm
https://rtfm.co.ua/django-primer-sozdaniya-prilozheniya-chast-1-sozdanie-zapusk-proekta/
http://zavx0z-django.blogspot.ru/
http://peterhudec.github.io/authomatic/examples/django-simple.html
http://cultofdigits.com/articles/django-cms/
http://spb-tut.ru/
http://vits.pro/info/django-cms/
http://cultofdigits.com/articles/django-cms/
http://djangosimple.blogspot.ru/
https://evileg.com/ru/knowledge/django/
https://proghub.ru/t/django-basic
https://evileg.com/ru/knowledge/django/
Руководство по веб-фреймворку Django


Шпоры



http://students.summerisgone.com/help/django_extras.html
http://ilnurgi1.ru/docs/django/templates.html
https://docs.django-cms.org
https://github.com/dikiigr/django-online-shop
http://dikiigrigorii.ru/articles/tag/django/


Курсы



https://mva.microsoft.com/ru/training-courses/-python-django-11415
DJANGO - РАЗРАБОТКА WEB-ПРИЛОЖЕНИЙ
НОУ «ИНТУИТ» Введение в Django
НОУ «ИНТУИТ» Технопарк Mail.ru Group: Web-технологии
Python + Django Framework школа практического программирования В. Бовсуновского
http://itman.in/uroki-django/


Видео



https://vk.com/video?q=django%20python§ion=search
------------------------------------------------------------------------
intopython.ru Первая статическая страница в джанго
https://www.youtube.com/watch?v=Iw-CzupverM
------------------------------------------------------------------------
GeekBrains Django Построение веб приложений на Python
https://www.youtube.com/watch?v=UnmZMJv4ox8
------------------------------------------------------------------------
ITVDN Вебинар на тему "Создание первого веб-сайта при помощи Python и Django"
https://github.com/aqrln/itvdn-django-webinar
https://www.youtube.com/watch?v=IZqBTPmxoew
------------------------------------------------------------------------
Susan Ibach and Christopher Harrison Уроки Python
https://www.youtube.com/channel/UCsSQgz9oCdVyvZ-bViMj4_g
Уроки Python Разработка веб-сайтов с использованием Python и Django
https://www.youtube.com/playlist?list=PLQDKSpN49uZaVuqnQefE_pjX2L1EayPL0
------------------------------------------------------------------------
shadrus Django
https://www.youtube.com/playlist?list=PLpTASIMYgCp8supkEmnnrYa5xi9g91ZPI
Mihail Kozlov Python
https://www.youtube.com/playlist?list=PL5KGx5_ykLX8qOlP1CaxxlTXKOZhIvfZl
------------------------------------------------------------------------
кузьма кузин как создать сайт на Django Python
https://www.youtube.com/playlist?list=PLk3dllNv0g252fFKpiYeJaSRwEpBzhUcu
------------------------------------------------------------------------
Coding Medved Джанго с нуля на примере создания простого интернет-магазина
https://www.youtube.com/playlist?list=PLSWnD6rL-m9adebgpvvOLH5ASGJiznWdg
Coding Medved GoUpworkIntensive
https://www.youtube.com/playlist?list=PLSWnD6rL-m9Zn2JaIfdWA35IpBCwuzS4s
Coding Medved Бизнес-процессы и структура базы данных с нуля по разным проектам
https://www.youtube.com/playlist?list=PLSWnD6rL-m9ZaiJy6eY19IAEWeSfc4yvS
------------------------------------------------------------------------
Vitaly Pavlenko Веб-программирование на Физтехе
https://www.youtube.com/playlist?list=PLzQrZe3EemP5KsgWGnmC0QrOzQqjg3Kd5
------------------------------------------------------------------------
Владимир Доминион Django - разработка web-приложений
https://www.youtube.com/playlist?list=PLw9iStk1sia9yEiv5b7-Flxg6kTE2FAEL
Владимир Доминион Django1.8
https://www.youtube.com/playlist?list=PLw9iStk1sia9Nw2ENJRr3d9B30q8E9iI4
Владимир Доминион DJANGO-CMS
https://www.youtube.com/playlist?list=PLw9iStk1sia_DbiSqOwpiNE2I-QM_8RMf
Владимир Доминион Интернет магазин Django 1.10
https://www.youtube.com/playlist?list=PLw9iStk1sia9xvjLU0l2AXXQpHqXrcWdZ
Владимир Доминион Дневник Django developer
https://www.youtube.com/playlist?list=PLw9iStk1sia_3TmHeXK4uROHpBhFVE6fB
Владимир Доминион Django admin
https://www.youtube.com/playlist?list=PLw9iStk1sia9qAP5pOpVKGn5UPFw5BYj7
------------------------------------------------------------------------
Anton Maistrenko Django Введение
https://www.youtube.com/playlist?list=PLH9GfV-TK38h6crIqlzJ__xRocwVgMhyV
Anton Maistrenko Django Models
https://www.youtube.com/playlist?list=PLH9GfV-TK38iNIWn-YCiz0mtK59gfBkOV
Anton Maistrenko Django Project
https://www.youtube.com/playlist?list=PLH9GfV-TK38iyjZeW4lw8xssm3UoBAiA3
------------------------------------------------------------------------
Сергей Балакирев selfedu
https://proproprogs.ru/django
Django 3 для python (уроки)
https://www.youtube.com/playlist?list=PLA0M1Bcd0w8xO_39zZll2u1lz_Q-Mwn1F
Уроки по Django REST Framework
https://www.youtube.com/playlist?list=PLA0M1Bcd0w8xZA3Kl1fYmOH_MfLpiYMRs
------------------------------------------------------------------------
djlessons Django Channels
https://www.youtube.com/playlist?list=PLp_WN118C-Vd4XIIEfbCghVZLRLf1T5sk
djlessons Нотификации в Django
https://www.youtube.com/playlist?list=PLp_WN118C-VfNw8LgU5XdvIv-XXDFcTAz
djlessons Уроки Django. Создание медиапортала
https://www.youtube.com/playlist?list=PLp_WN118C-Vfb9QER0cOHLoDWg2_2IqPb
djlessons Интернет-магазин на Django 1.11
https://www.youtube.com/playlist?list=PLp_WN118C-VdgBKf_ATbvGI1xX06dZkmF
------------------------------------------------------------------------
Олег Молчанов Уроки Django 2.x
https://www.youtube.com/playlist?list=PLlWXhlUMyooaDkd39pknA1-Olj54HtpjX
------------------------------------------------------------------------
Артем Егоров egoroffchannel
Курс по Django 3
https://www.youtube.com/playlist?list=PLQAt0m1f9OHvGM7Y7jAQP8TKbBd3up4K2
------------------------------------------------------------------------
ProgrammingHub Python + Django web framewrok
https://www.youtube.com/playlist?list=PLPRsICSqu9FoOpFyr8dlfLh9_n4nt_05u
------------------------------------------------------------------------
WeBest Django
https://www.youtube.com/playlist?list=PLfAlku7WMht6echneod-yj9BNx5zaRkJo
------------------------------------------------------------------------
Python и Django по-простому Понравившиеся
https://www.youtube.com/playlist?list=LLIVVEmrGyqEleoFbayEHLrg
------------------------------------------------------------------------
Видеоуроки Python Уроки Django
https://www.youtube.com/playlist?list=PLMS-se7ZYfuwRpIicQcWW6XyjzqmbcUD9
------------------------------------------------------------------------
Uproger Django создание сайтов с нуля.
https://www.youtube.com/playlist?list=PLysMDSbb9HcyLnXB9eLiYmsznjzEXo_6W
------------------------------------------------------------------------
Moscow Python
https://www.youtube.com/user/moscowdjangoru/playlists
------------------------------------------------------------------------
Django API + React + Electron | Course Work
https://www.liveedu.tv/dikiigr/
------------------------------------------------------------------------
Phantomium Разработка на Python, Django.
https://www.youtube.com/playlist?list=PL6Fp8QPl6sOi0FXf1XNjt4bNDBJ0wGdGF
------------------------------------------------------------------------


Программное обеспечение



https://github.com/django/
https://pypi.python.org/pypi?:action=browse&show=all&c=523
https://pypi.python.org/pypi/Django
http://awesome-django.com/
https://djangopackages.org/

полезные дополнения

https://github.com/django-admin-tools/django-admin-tools
https://github.com/sehmaschine/django-grappelli
https://github.com/divio/django-cms
https://github.com/nephila/djangocms-installer
https://github.com/megamark16/django-cms-themes
https://github.com/thomaspark/bootswatch
https://github.com/anymail/django-anymail
https://github.com/darklow/django-suit
https://github.com/LPgenerator/django-db-mailer
https://github.com/sehmaschine/django-filebrowser
http://atmb4u.github.io/django-console/
https://github.com/selectel/pyte
https://github.com/eliangcs/http-prompt
Средство проверки типа Django URLconf
https://pypi.org/project/django-urlconfchecks/
http://free-templates.ru/


Консоль



https://repl.it/
https://www.pythonanywhere.com/
https://pypi.python.org/pypi/django-console
https://pypi.python.org/pypi/django-webshell


Посмотреть исходный код



https://github.com/django/django
http://nullege.com/codes/search/django
https://searchcode.com/?q=django

локально )
$ python
>>> import django
>>> print(django.__path__)


Вопросы, ответы, решения



http://python.su/forum/21/
http://www.cyberforum.ru/python-web/
https://readthedocs.org/search/?q=django
http://stofl-ru.com/tags/django


Разное



Pythonix. Первоначальная настройка
https://bitbucket.org/tramX/pythonix4/downloads/
Разработка своей системы биллинга на Django
https://pypi.python.org/pypi/django-customer-billing
OPDS каталог позволяет получать доступ к Вашей библиотеке через Интернет с большинства устройств для чтения электронных книг, планшетов, смартфонов и т.д

------------------------------------------------------------------------
установка Django в virtualenv с помощью pip через proxy
Установка веб-фреймворка Django в Ubuntu
Делаем из Sublime Text 3 IDE для Python и Django
Sublime Text 3 и консоль python

Питоновские пакеты отличный способ повторного использования кода. Если один и тот же код вы уже в третий раз копируете в очередной проект, самое время вынести этот код в отдельный модуль. А еще лучше будет собрать питоновский пакет, который потом будет устанавливаться одной командой.

Read more... )
http://ishalyapin.ru/собираем-питоновский-пакет-и-выклады/




развернуть
Время от времени, я пишу небольшие утилиты, библиотеки и приложения на python для себя, и не всегда я готов делится этими утилитами и библиотеками, но хотелось бы иметь возможность их удобно устанавливать, и желательно привычным pip в virtualenv. Для этого я довольно давно организовал себе локальный, приватный pypi сервер. Реализаций локальный pypi серверов довольно много, и я перепробовал их все. Большинство из них откровенно неработающие, другие безбожно глючат и падают от малейшего чиха. В конечном итоге для себя я выбрал localshop. В этом небольшом посте я расскажу как настроить локальный, приватный pypi репозиторий на localshop.

Для любителей docker: да, есть ardeois/docker-localshop. Можете поставить его сразу из docker hub, но мне docker не всегда подходит.

Ставим всё необходимое:



На серверах я по прежнему использую исключительно Debian Stable, поэтому название пакетов актуально для данного дистрибутива. Для других название может быть иным.

Из под обычного пользователя создаём виртуальное окружение и активируем его:
cd /home/$USER
virtualenv localshop
cd localshop
source bin/activate
pip install localshop
localshop migrate

Настроим supervisor для запуска localshop. Создадим /etc/supervisor/conf.d/ localshop.conf:



Выше $USER нужно заменить на имя пользователя, под которым Вы развернули virtualenv с localshop.

Запустим:



Теперь настроим nginx. Создадим /etc/nginx/sites-available/localshop :



В листинге выше $USER так же нужно заменить на пользователя в директории которого разместили виртуальную среду с localshop.
Активируем конфигурацию nginx:



Скажем systemd запускать supervisor и nginx при старте системы:



После этого заходим по адресу, по которому разместили localshop. В нашем примере - это http://localshop.yourdomain.com. Перед нам откроется главная страница localshop:



Далее в верхнем меню выбираем Permissions, затем CIDRs и нажимаем Create. На странице добавления необходимо добавить IP-Адрес, или сеть из которой будет доступна возможность добавлять пакеты. В моём случае это сеть 192.168.1.0/24. Обращаю внимание, что добавлять необходимо в CIDR нотации. Например, /24 в CIDR нотации - это маска 255.255.255.0. Подробнее можно почитать, например, на википедии.



После добавления:



В localshop в отличии от многих других приватных pypi можно каждому пользователю давать разные ключи для доступа, и при надобности отключить пользователя. Добавим один ключ. Для этого так же в меню выбираем Permissions, затем Credentials и нажимаем Create. Localshop автоматически сгенерирует ключ:



Пользователи имеющие доступ к самому localshop создаются отдельно. Для кого-то это может показаться неудобным, для себя же я нашёл это весьма удобным решением.

Теперь необходимо настроить pip таким образом, чтобы он позволял использовать наш приватный pypi вместе с основным.
Откроем файл ~/.pypirc расположенный в домашней директории пользователя, из под которого планируется использовать localshop, и приведем к примерно такому виду:



Пользователя и пароль для localshop находятся на странице Credentials. Там же можно добавить ключ, если на ранних шагах не добавили.
Теперь можно скачивать и закачивать пакеты через наш приватный сервер:



Но чтобы каждый раз не указывать его, можно назначить его используемым по-умолчанию. Для этого в домашней директории откройте файл: ~/.pip/pip.conf (создайте если его нет), и добавьте следующее:



Где access_key - это Access Key со страницы Credentials, secret_key - secret key с той же страницы.


https://the-bosha.ru/2016/03/21/razvorachivaem-lokalnyiy-pypi-s-localshop/



развернуть
испробовав разные способы я нашёл этот самым оптимальным
при установке через pip3 возникла ошибка:

TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'

причиной оказалась "докембрийская свежесть" пакета:
http://stackoverflow.com/questions/37495375/python-pip-install-throws-typeerror-unsupported-operand-types-for-retry

поначалу возникло желание собрать свой пакет с помощью stdeb

Ставим пакеты stdeb и python-all:
# apt-get install stdeb python-all
Теперь находим архив с нужным нам модулем на pypi.python.org и скачиваем его себе:
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
или
$ wget https://bootstrap.pypa.io/get-pip.py
Теперь можно заглянуть в документацию на stdeb и посмотреть, как это делается.

Распакуем скачанный архив:
$ tar xzvf grab-0.4.12.tar.gz
Перейдём в каталог с распакованным модулем:
$ cd grab-0.4.12
Подготовим каталог и управляющие файлы для сборки пакета:
$ python setup.py --command-packages=stdeb.command sdist_dsc
Теперь перейдём в этот каталог и соберём пакет:
$ cd deb_dist/grab-0.4.12
$ dpkg-buildpackage -us -uc -rfakeroot
В каталоге выше появится готовый deb-пакет, который можно установить в систему.
# dpkg -i python-grab_0.4.12-1_all.deb

http://vladimir-stupin.blogspot.ru/2013/10/deb-python.html

sudo apt-get install python-stdeb
.....
но свежее окружение проще поддерживать стандартными средствами python, чем самому постоянно ваять пакеты ), посему вбил в консоль это и получил нужный мне результат:
sudo apt-get remove python-pip python3-pip
export https_proxy=http://user:password@proxy-server:port  ; export http_proxy=http://user:password@proxy-server:port  ; export ftp_proxy=$http_proxy
wget https://bootstrap.pypa.io/get-pip.py
curl -O https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py
если ImportError: cannot import name 'sysconfig'
sudo apt-get install python3-distutils
pip install -U pip
pip install -t $HOME/devs/lib/virtualenv virtualenv
chmod +x $HOME/devs/lib/virtualenv/virtualenv.py (для старых версий)
ln -s $HOME/devs/lib/virtualenv/virtualenv.py $HOME/bin/virtualenv  (для старых версий)
ln -s $HOME/devs/lib/virtualenv/bin/virtualenv $HOME/bin/virtualenv
echo 'export PYTHONPATH="$HOME/devs/lib/:$PYTHONPATH"' >> $HOME/.profile  (или в $HOME/.bashrc)
cd $HOME/devs/virt
virtualenv -p python3 newenv1
source $HOME/devs/virt/newenv1/bin/activate
pip install django
pip install django-admin-tools
django-admin startproject django1
cd django1/
sed -i 's/LANGUAGE_CODE = \x27en-us\x27/LANGUAGE_CODE = \x27ru-ru\x27/' django1/settings.py
python manage.py migrate
python manage.py createsuperuser
x-www-browser 'http://0.0.0.0:8080/admin' &
python manage.py runserver 0.0.0.0:8080


https://packaging.python.org/guides/installing-using-pip-and-virtual-environments/
python3 -m pip install --user virtualenv
python3 -m venv env
source env/bin/activate
deactivate
python3 -m pip install requests

https://docs.python.org/3/tutorial/venv.html
python3 -m venv tutorial-env
source tutorial-env/bin/activate


ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
launchpadlib 1.10.13 requires testresources, which is not installed.

sudo apt install python3-testresources

если надо какая нибудь определённая версия Django, то
pip install Django==1.8.18

PS
следуя талмуду http://djbook.ru/rel1.9/intro/
я вводил всякие команды типа

python manage.py startapp polls
python manage.py makemigrations polls
python manage.py migrate
python manage.py check
python manage.py migrate --run-syncdb

и правил конфиги, как в букваре, пока не столкнулся с ошибкой:

    url(r'^polls/', include('polls.urls')),
NameError: name 'include' is not defined

вылечилось добавлением этой строки, в файле urls.py, перед urlpatterns

from django.conf.urls import include

в старых версиях лечило

from django.conf.urls.defaults import *

Django 1.9 Flatpages, как настроить URLS?
http://python.su/forum/topic/7746/?page=1#post-51255

быстро подправить базу
python manage.py dbshell
или
sudo add-apt-repository -y ppa:linuxgndu/sqlitebrowser
sudo apt-get install sqlitebrowser

чтобы PyCharm в virtualenv нормально ставил пакеты через proxy:
надо создать файл pycharm, написать в нём:



положить его в папку $HOME/bin и дать права на выполнение chmod +x
сам архив с программой распаковать в $HOME/lib

---------------------------------------------------------------------------

Flatpages App

1) устанавливаем. как написано тут
https://djbook.ru/rel1.9/ref/contrib/flatpages.html

в settings.py:
INSTALLED_APPS 
    'django.contrib.sites',
    'model1',                    # подключаемая модель
    'django.contrib.flatpages',

MIDDLEWARE добавить прослойку
    'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',


SITE_ID = 7 # цифра = № сайта. созданного в админ панели, узнать номер можно переходом на этот сайт (№ в адресной строке)

urls.py



2) создаём модель
django-admin.py startapp model1
python manage.py migrate

3) создаём в модели папки:
templates, а в ней папку flatpages, в которой создаём файл default.html
как указано тут
https://simpleisbetterthancomplex.com/tutorial/2016/10/04/how-to-use-django-flatpages-app.html




или напр. так



удобный визуальный редактор

https://github.com/ITCase-django/django-tinymce-4

pip install django-tinymce-4
в settings.py

INSTALLED_APPS = (
    'tinymce_4',
    'grappelli',
    'filebrowser',
    'django.contrib.admin',
)

в urls.py

url(r'^grappelli/', include('grappelli.urls')),
url(r'^admin/', include([
    url(r'^', include(admin.site.urls)),
    url(r'^filebrowser/', include(fb_site.urls)),
])),

в models.py

from tinymce_4.fields import TinyMCEModelField
from django.db import models

class ModelFoo(models.Model):
    content = TinyMCEModelField('Foo content')

напр в

$HOME/devs/virt/newenv3/lib/python3.4/site-packages/django/contrib/flatpages/models.py

добавить
from tinymce_4.fields import TinyMCEModelField

а
content = models.TextField(_('content'), blank=True)
заменить на
content = TinyMCEModelField(_('content'), blank=True)

https://djbook.ru/forum/topic/1101/

---------------------------------------------------------------------------

напоминание о читабельном коде

$ pip3 install pep8
$ pep8 optparse.py
$ pip3 install autopep8
$ autopep8 --in-place optparse.py
---------------------------------------------------------------------------

Быстрый старт
---------------------------------------------------------------------------
работа с virtualenv

$ git clone https://github.com/username/projectname.git
$ cd projectname
$ virtualenv -p python3 venv
$ source venv/bin/activate
(venv)$ pip install -r requirements.txt
---------------------------------------------------------------------------

cd $HOME/devs/virt
virtualenv -p python3 newenv3
source $HOME/devs/virt/newenv3/bin/activate
pip install --upgrade pip
pip install djangocms-installer # и это подтянет всё остальное по зависимостям, в т.ч и django нужной версии )
pip freeze > requirements.txt
mkdir tutorial-project
cd tutorial-project
djangocms -f -p . mysite
python manage.py createsuperuser
python manage.py runserver

в settings.py

SITE_ID = 2 # чтобы создать ещё сайт, (кроме того что в шаблоне по умолчанию, цифра - количество сайтов)

затем
python manage.py migrate

войти, создать сайт, папку, загрузить туда рисунки, создать фрагмент с фоновым рисунком, создать страницу

затем
dumpdata и loaddata чтобы сдампить одну базу в JSON и восстановить дамп уже на другой базе.

добавление bootstrap3
pip install aldryn-bootstrap3
python manage.py migrate
python manage.py collectstatic
подробно см тут
https://github.com/aldryn/aldryn-bootstrap3

вариант
https://github.com/dyve/django-bootstrap3

http://docs.django-cms.org/en/release-3.4.x/introduction/install.html
http://docs.django-cms.org/en/latest/introduction/index.html
Index of Packages Matching 'djangocms'
https://cdnjs.com/libraries (подключаемые библиотеки )
Как растянуть фон на всю ширину окна?
неподвижный фон при прокрутке страницы html
Как добавить фоновый рисунок на веб-страницу?
Перевод первой части документации Django-CMS
Вторая часть документации по Django CMS
Создание сайта на Django CMS

---------------------------------------------------------------------------

Работа с pip

$ pip help # помощь по доступным командам.
$ pip install package_name # установка пакета(ов).
$ pip install Django==1.8.18 # установка определённой версии пакета.
$ pip uninstall package_name # удаление пакета(ов).
$ pip-autoremove package_name # удаление пакета(ов), с установленными зависимостями
$ pip install -U # обновление пакета(ов).
$ pip install --force-reinstall # при обновлении, переустановить пакет, даже если он последней версии.
$ pip list # Смотрим на список установленных (доступных) библиотек
$ pip list -o # узнать, какие библиотеки можно обновить
$ pip show package_name # узнать версию, местонахождение на диске и зависимости.
$ pip search pycp # покажет список всех пакетов, в названии которых есть pycp
$ pip --proxy user:passwd@proxy.server:port # использование с прокси.
$ pip completion --bash >> ~/.bashrc # Автодополнение
http://asvetlov.blogspot.ru/2014/05/pip.html

Как обновить существующие пакеты? (пользоваться осторожно, лучше в virtualenv )

$ pip install pip-review
$ pip-review --local --interactive
или
$ pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
http://python.cx/blog/article/3
http://xgu.ru/wiki/Работа_с_модулями_в_Python

Удаление ненужных пакетов

$ pip install pip-autoremove
$ pip install Flask Sphinx
$ pip-autoremove Flask Sphinx -y
http://python.cx/blog/article/PyPi_pip_python

При сборке собственных пакетов нужно записать все текущие установленные пакеты в файл с именем requirements.txt
$ pip freeze > requirements.txt

Команда pip установит перечисленные зависимости, переопределяя зависимости, указанные в подпакетах, в том случае, если возникли конфликты.
$ pip install -r requirements.txt


---------------------------------------------------------------------------------

virtualenverapper
http://www.unix-lab.org/posts/virtualenv/
https://russianpenguin.ru/tag/python/

$ sudo apt install virtualenvwrapper

Добавляем в .bashrc

export WORKON_HOME=~/.envs
source /usr/bin/virtualenvwrapper.sh

Применяем изменения
$ source .bashrc

Теперь можно создавать окружения.
$ mkvirtualenv proj_env

Активировать окружения.
$ workon proj_env

Выходить из окружения
$ deactivate

Удалять окружения.
$ rmvirtualenv proj_env

При этом все папки окружений будет расположены в одном месте: папке, которая задана через $WORKON_HOME.

---------------------------------------------------------------------------------

вариант с pyenv (удобно)
https://github.com/pyenv/pyenv-installer
Менеджер версий python
Скрипт создаст указанную директорию, вместе со всеми родительскими директориями, если потребуется, и построит виртуальное окружение.

средствами OS
$ sudo apt-get install python3-venv
$ python3 -m venv $HOME/devs/virt/newenv1
$ pyvenv $HOME/devs/virt/newenv1
$ source $HOME/devs/virt/newenv1/bin/activate

автономная установка (предпочтительней)
Управляем разными версиями python

sudo apt install git




перезапустить оболочку
$ exec "$SHELL"

Обновление:
$ pyenv update

Удаление:
$ rm -fr ~/.pyenv
и убрать из .bashrc строки (или заккоментить #)

export PATH="~/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

перезапустить оболочку
$ exec "$SHELL"

если
WARNING: `pyenv init -` no longer sets PATH
то убрать из .bashrc и добавить в .profile
https://github.com/pyenv/pyenv

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile
echo 'eval "$(pyenv init --path)"' >> ~/.profile

Использование:
$ pyenv
$ pyenv versions
$ pyenv install 3.6.3
$ pyenv versions
$ pyenv global 3.6.3
$ python --version
$ pyenv global 2.7.13

~$ mkdir my-project && cd my-project
~/my-project$ python -V # версия python по-умолчанию
Python 2.7.13
~/my-project$ pyenv local 3.6.3 # меняем версию для директории my-project
~/my-project$ python -V # новая версия
Python 3.6.3
~/my-project$ cd ..
~$ python -V # для остальных директорий ничего не поменялось
Python 2.7.13
~$ ls -la ./my-project
-rw-rw-r-- 1 user user 10 ноя 8 17:18 .python-version
~$ cat ./.python-version
3.6.3

Если в ходе установки в консоли появятся ошибки
значит в системе установлены не все необходимые пакеты. Исправим это, выполнив



если ошибка ModuleNotFoundError: No module named '_lzma'
то
sudo apt-get install lzma
sudo apt-get install liblzma-dev
sudo apt-get install libbz2-dev

Виртуальное окружение
Добавить плагин легко, просто клонируем его из репозитория pyenv-virtualenv или pyenv-virtualenvwrapper:



Пример использования

$ pyenv versions
* system
2.7.5
3.3.2

$ mkdir -p ~/test_project/prj_for_2.7.5 && cd ~/test_project/prj_for_2.7.5
$ pyenv virtualenv 2.7.5 my-virtualenv-2.7.5
$ pyenv local my-virtualenv-2.7.5
$ pip install django==1.4
$ pip freeze
Django==1.4
wsgiref==0.1.2
$ python --version
Python 2.7.5

$ mkdir -p ~/test_project/test_project && cd ~/test_project/test_project
$ pyenv virtualenv 3.3.2 my-virtualenv-3.3.2
$ pyenv local my-virtualenv-3.3.2
$ pip install django==1.5
$ pip freeze
Django==1.5
$ python --version
Python 3.3.2

самый правильный способ
$ pyenv virtualenv virt3.6.3
$ pyenv virtualenvs
$ pyenv shell virt3.6.3
$ pyenv activate virt3.6.3
$ pyenv deactivate
$ pyenv uninstall virt3.6.3

проверка как работает
$ pyenv install 3.6.4
$ pyenv virtualenv virt3.6.4
$ pyenv activate virt3.6.4
$ pip install gunicorn httpbin
$ gunicorn httpbin:app
$ pyenv deactivate
$ pyenv uninstall virt3.6.4
$ pyenv virtualenvs
$ pyenv uninstall 3.6.4
$ pyenv versions



---------------------------------------------------------------------------------

Представляем Pipenv!
https://pypi.org/project/pipenv/
https://pypi.org/project/pipsi/


автоматическая активация виртуальных окружений

https://github.com/kennethreitz/autoenv
https://nolar.info/automatically-activate-virtualenv-on-cd/
https://gist.github.com/nolar/9702618
http://hmarr.com/2010/jan/19/making-virtualenv-play-nice-with-git/
https://github.com/utahta/pythonbrew

http://itnovella.ru/itnovella/2014/01/16/nastroyki-proksi-v-debian-gnu-linux.html
http://pythonworld.ru/osnovy/pip.html
https://pip.pypa.io/en/stable/reference/pip_install/#pip-install-options
https://qa.mchost.ru/q/ustanovka-bibliotek-python-v-domashniy-katalog
http://askubuntu.com/questions/250929/pythonpath-environment-variable
«pip -t» — простая альтернатива virtualenv
Создание deb-пакетов для модулей Python
http://snakeproject.ru/rubric/article.php?art=django19p01
http://defindit.com/ascii.html
Одно-строчные скрипты SED - Ant0
Полезные одно-строчные скрипты sed (sed shell)
http://asvetlov.blogspot.ru/2014/05/pip.html
http://python.cx/blog/article/PyPi_pip_python
http://eax.me/python-virtualenv/
Питон в коробке – venv в python 3.3
https://docs.python.org/dev/library/venv.html
https://khashtamov.com/2015/12/pyenv-python/
http://proft.me/2010/04/3/python-i-okruzhenie-virtualenv/
https://russianpenguin.ru/2015/04/05/разработка-на-python-с-использованием-virtualenv/
http://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html
Современный Python: как начать свой проект с нуля при помощи Pyenv и Poetry

Установка Django CMS в Ubuntu 16.04 64bit
Ленивый деплой Django проекта UWSGI + NGINX (UBUNTU 20.04)
How To Set Up Django with Postgres, Nginx, and Gunicorn on Ubuntu 20.04
Запуск Django сайта на nginx + Gunicorn + SSL
Настройка Debian, Nginx и Gunicorn для Django проекта

https://www.sinyawskiy.ru/feincms.html
http://vits.pro/info/django-cms/
http://cultofdigits.com/articles/django-cms/
12 не годных cms или как я выбирал нам cms на python — и ничего не выбрал.

uzverss Установка веб-фреймворка Django в Ubuntu
uzverss консоль python в роли командной строки




раскрыть тему

Сайты



http://raspberry.su/
http://raspberrypi.ru/
http://micropython.org/
http://www.espruino.com/
https://www.arduino.cc/
http://amperka.ru/
http://cxem.net/
http://www.codesys.ru/
https://www.codesys.com/
http://digitrode.ru/
http://plc24.ru/
http://rs232.net.ru
https://vk.com/itinside
https://2ch.hk/ra/
https://ru.mouser.com/


Статьи



Схема распайки компьютерного порта COM - rs232, DE-9, DB-9, CANNON9
Запись времени захода в комнату или простой пример работы с прерываниями по GPIO на Python
Raspberry Pi. Урок 4. Настройка GPIO
Raspberry Pi: первое знакомство. Урок 4. Работа с GPIO, мигание светодиодом, Python
Система управления умным домом на основе Raspberry Pi
Raspberry Pi для домашней автоматизации. Установка Webiopi
RASPBERRY PI. ДЕЛАЕМ ПЛАТУ ИНДИКАЦИИ И ПИШЕМ КОД НА PYTHON
GPIO button to emulate keyboard
Использование GPIO из Python на Raspberry Pi
Работа с GPIO пинами Raspberry Pi.
Использование SPI из Python на Raspberry Pi
От Python скрипта до WSGI приложения
Последовательный порт. Да, поможет нам Python!
Работа с последовательным портом из консоли Linux
Bubot — очень легкий фреймворк на Python 3 для программирования роботов и домашней автоматизации
Веб-контроль Raspberry Pi GPIO
Разработка для коптеров
Гирлянда на Raspberry Pi
Вывод температуры, пробок и курса валют на светодиодную матрицу Raspberry Pi
NooLite + Raspberry Pi + Telegram = умный дом
«Привет, Siri. Включи обогреватели» — Интеграция умного дома на базе NooLite с Apple HomeKit
Подключаем Arduino к Mikrotik. Дешевое и сердитое удаленное управление нагрузками
Программное обеспечение для умного дома
Как мы сделали малогабаритный облачный видеорегистратор из обычной IP камеры
Видеоcъемка и фотосъёмка на Raspberry pi в облако
Простой SMS-шлюз на Raspberry Pi
«Как зеницу ока...» или делаем простенькую охранную систему на базе микроконтроллера (Сanny или Arduino) и Raspberry PI
https://github.com/bosonbeard/Funny-models-and-scripts/tree/master/5.Canny/5.canny_arduino_raspi_uart_security
Разминка перед выходными: есть Raspberry Pi, Arduino и свободный вечер
Raspberry Pi. Работаем с GPIO на Python - Часть 1
Linux: кнопки, светодиоды и GPIO
Соединяем Raspberry Pi с Arduino через Serial GPIO
Использование GPIO выводов Raspberry Pi
Просмотр видео на Raspberry Pi
Медиаплеер из содержимого кладовки
Пишем аудио-разведчик своими руками
Управление линиями GPIO на Raspberry Pi
Прошивка AVR микроконтроллеров с помощью Orange Pi
Удаленное управление мотором постоянного тока с Arduino и Node.js
uJVM: платформа для запуска Java-приложений на микроконтроллерах (MCU)
Espruino Pico — оригинальная плата Espruino со встроенным интерпретатором JavaScript.

Электроника всем начинающим
Разработка одноплатного компьютера с нуля. Пособие для начинающих
Разработка одноплатного компьютера. Пособие для продвинутых
Микроконтроллер + компьютер + своё программное обеспечение
Осваиваем простейший микроконтроллер PIC. Часть 1
Промышленный реверс-инжиниринг
GPIO-пины Raspberry Pi и их использование из Python
Мой первый радиоуправляемый робот на Arduino
Регистры процессора Intel 8086: от чипа к транзисторам
Дешевый и полнофункциональный робот-манипулятор своими руками
Эмулятор RFID (Смарт-карты Wiegand )
U-boot. Процедура инициализации по шагам
как мы нашли, проанализировали (с помощью Reddit) и в итоге поймали виновника вредоносного устройства в нашей сети
RogueOne: создание мошеннической точки доступа Wi-Fi с помощью Raspberry Pi
Доступ к журналу событий из командной строки
Редактирование образа Raspberry Pi с помощью qemu-user-static (Ubuntu 14.04)
Введение в реверсинг с нуля, с использованием IDA PRO
Вглядываемся в Radare2
Анализ TPM
Полноценный Kubernetes с нуля на Raspberry Pi

разное
DIY дозиметр за полчаса: так ли фонят набережные Питера?


Книги



http://radio18.ru/catalog/docs/5198.pdf
Проекты с использованием контроллера Arduino Виктор Петин
Проекты с использованием контроллера Arduino Виктор Петин 2014
Программируем Arduino. Профессиональная работа со скетчами Саймон Монк 2017
Джереми Блум - Изучаем Arduino: инструменты и методы технического волшебства
Практическая энциклопедия Arduino Виктор Петин, Александр Биняковский 2017
Джереми Блум - Изучаем Arduino: инструменты и методы технического волшебства [2015] DjVu
Подборка книг: Arduino
Ассемблер — это просто. Учимся программировать Олег Калашников 2011
Схемотехника. Мастер-класс Гаврилов С.А. 2016
Авдеев В.А. Периферийные устройства: интерфейсы, схемотехника, программирование
Микроконтроллеры AVR. От азов программирования до создания практических устройств Белов А.В.
подборка книг схемотехника микроконтроллеры


Подборки



http://robocraft.ru/tag/python
http://cxem.net/search.php?search_str=raspberry
https://geektimes.ru/hub/raspberrypi/
http://abyz.co.uk/rpi/pigpio/python.html
http://mediaunix.com/tag/raspberry-pi/
https://habrahabr.ru/hub/controllers/
http://wiki.amperka.ru/
https://zhevak.wordpress.com/

Assembler
https://uzverss.livejournal.com/89062.html


Самоучители



Базовый курс на Raspberry PI
Подборка материалов Raspberry Pi для домашней автоматизации
Ethernet Shield и Arduino – основы
GPIO для чайников (часть 1)
GPIO для чайников (дополнение)
http://www.openfablab.ru/
http://plc24.ru/manual/cds_theory/
Шпаргалка по основным инструкциям ассемблера x86/x64


Видео



https://www.youtube.com/user/Raspberrypipi/videos
------------------------------------------------------------------------
Паяльник TV Для начинающих
https://www.youtube.com/playlist?list=PLBLtydguylgB-9FPU63TY_vtsj0xYt5li
Паяльник TV Обзоры оборудования
https://www.youtube.com/playlist?list=PLBLtydguylgCryZxo0sC-j1INz2XW0WH7
Паяльник TV Ремонт
https://www.youtube.com/playlist?list=PLBLtydguylgA3trXhW-QVjGAU9-TqEIJW
Паяльник TV Робототехника и ДУ-управление
https://www.youtube.com/playlist?list=PLBLtydguylgCOSv5Cn-757nAgMGQKXRAq
Паяльник TV Конструкторы
https://www.youtube.com/playlist?list=PLBLtydguylgDsjG9L8tSzmJOSXzfwGSBE
Паяльник TV Программы
https://www.youtube.com/playlist?list=PLBLtydguylgCkhtJWxukOynJztqTVN_Ny
Паяльник TV Микроконтроллеры
https://www.youtube.com/playlist?list=PLBLtydguylgDUtd9qRAt82u-pUa9x6O8Y
------------------------------------------------------------------------
Радиолюбитель TV Уроки Ардуино / Arduino
https://www.youtube.com/playlist?list=PLleXqmo8pio1THWNZlx-py52KgafepaHf
Радиолюбитель TV Всё об ARDUINO
https://www.youtube.com/playlist?list=PLleXqmo8pio00lUJMZEmJGdCmyPsBUCII
Радиолюбитель TV Уроки радиоэлетроники / Радиолюбитель TV
https://www.youtube.com/playlist?list=PLleXqmo8pio3f8NuYKnJuWeM-27OBMKLM
Радиолюбитель TV Транзистор - это просто
https://www.youtube.com/playlist?list=PL44307E6369894ED5
Радиолюбитель TV Как сделать своими руками
https://www.youtube.com/playlist?list=PLleXqmo8pio3GRO9303b8_ZXK09F88ZuL
Радиолюбитель TV Товары из Китая Радиолюбителю
https://www.youtube.com/playlist?list=PLleXqmo8pio1Oh4sFdYAfIKLHsJz1pj8i
------------------------------------------------------------------------
Радиолюбитель Уроки радиоэлектроники
https://www.youtube.com/playlist?list=PL_2PkT1Qd7H-yLV_8OMhKbwsoclr13Umk
------------------------------------------------------------------------
AKA KASYAN Как это работает?
https://www.youtube.com/playlist?list=PLYWPJHDGvhxGU7wSB-39KNhst_d9d3mOS
AKA KASYAN Начинающим радиолюбителям
https://www.youtube.com/playlist?list=PLYWPJHDGvhxEZi11LZ8-OXO1bWmtnOUQx
AKA KASYAN Обзор устройств
https://www.youtube.com/playlist?list=PLYWPJHDGvhxFTXCHEJvCg5Z-XLU2SMHpQ
AKA KASYAN Мастерская радиолюбителя
https://www.youtube.com/playlist?list=PLYWPJHDGvhxHjgrtkeEVIka58QvsVhp8Q
AKA KASYAN Простейшие конструкции для начинающих
https://www.youtube.com/playlist?list=PLYWPJHDGvhxFFTRa4TR6i0q8QYr5CCJug
AKA KASYAN Особо интересное видео
https://www.youtube.com/playlist?list=PLYWPJHDGvhxHPltFftU1oUESYwKaRBAyK
------------------------------------------------------------------------
Обзоры посылок и самоделки от jakson
Самоделки и радиоконструкторы
https://www.youtube.com/playlist?list=PLIe2lqjafXDf28GsoyeMjGML8zIzWRGdf
Собираем интересные схемы.
https://www.youtube.com/playlist?list=PLIe2lqjafXDcNvy4lGclWSMsoitDOufVo
Радиоконструкторы
https://www.youtube.com/playlist?list=PLIe2lqjafXDcvwaQreha6qmyrt5ZYmjv6
------------------------------------------------------------------------
geekmatic Видео уроки программирования Arduino
https://www.youtube.com/playlist?list=PLmYrKfbOTukLzM2oUr4DzZ68vfrB3q5Pt
geekmatic Уроки Arduino для новичков от coursera
https://www.youtube.com/playlist?list=PLmYrKfbOTukJONp6Mjse7I4cigpChNWwB
------------------------------------------------------------------------
IT Propaganda Программируем Arduino на Python
https://www.youtube.com/playlist?list=PLbKwBvrpogbbTfFxr1wEXzLS9VKXsqvxD
------------------------------------------------------------------------
Video Channel AVR
https://www.youtube.com/playlist?list=PLZ5OKxpfkh5KfjXFeywXvaam-wTmC35A9
------------------------------------------------------------------------
Школа программистов Программирование с нуля! (ASM)
https://www.youtube.com/playlist?list=PLVBQ16nKzRwqD8qPOldSYBUWEjjFOCPXu
------------------------------------------------------------------------
Основы программирования Ассемблер
https://www.youtube.com/playlist?list=PLOrC1aStHSaqGTV5lEx07nKbvDxSiYCJH
------------------------------------------------------------------------
Tempesta ASSEMBLER
https://www.youtube.com/playlist?list=PLQ3fZB7WryQCL_U2NnpOx97zW6N9-Een3
------------------------------------------------------------------------
risctronix Программирование pic контроллеров для начинающих с нуля.
https://www.youtube.com/playlist?list=PLt_8RrnK98LnMeOzaW_MpiShY4HGkQtI1
------------------------------------------------------------------------
MyChipPic Создание схем и программирование на ассемблере микроконтроллеров PIC
https://www.youtube.com/playlist?list=PLIMnyb3KvN1j0H3G82zjT6R0KLG77ONvg
MyChipPic Программирование микроконтроллеров PIC на ассемблере
https://www.youtube.com/playlist?list=PLIMnyb3KvN1hQQfVPeeVTynqG2ni-zoCh
MyChipPic Практика
https://www.youtube.com/playlist?list=PLIMnyb3KvN1g_xOxtGG7V3vOTnR3Lou85
------------------------------------------------------------------------
Smart Ptz Orange PI PC
https://www.youtube.com/playlist?list=PLuxH0zKcnbRGfdGpHXCw-964tV8y1zgcI
Smart Ptz Ардуиномания
https://www.youtube.com/playlist?list=PLuxH0zKcnbRG5ymR47m1sRNAYH1MLviMC
------------------------------------------------------------------------
НОУ ИНТУИТ Введение в цифровую электронику
https://www.youtube.com/playlist?list=PLDrmKwRSNx7Lk8Lb2Cz2a2JqVXmwqCo6t
НОУ ИНТУИТ Архитектура ЭВМ и язык ассемблера
https://www.youtube.com/playlist?list=PLDrmKwRSNx7I4QA6z2HlcDkjwW4fpNPva
------------------------------------------------------------------------
Видео уроки по Arduino от Джереми Блума (Jeremy Blum)+книга
http://pikabu.ru/story/video_uroki_po_arduino_ot_dzheremi_bluma_jeremy_blumkniga_3901988
------------------------------------------------------------------------
knowcity Радиоэлектроника.
https://www.youtube.com/playlist?list=PLYZm5HGThGRDMQKJyPHWefGPDbvREh4R3
------------------------------------------------------------------------
ElectronicsClub Электроника для начинающих
https://www.youtube.com/playlist?list=PL8uwGGI-Cxq7_82j2kLih6bspk4DkOMec
------------------------------------------------------------------------
Электротехника и электроника для программистов
Кодирование сигналов
https://www.youtube.com/playlist?list=PL1VvMJF0dnhrcJZBhrAr8OWZKkCtbIBGQ
Интерфейсы
https://www.youtube.com/playlist?list=PL1VvMJF0dnhrmMtkXu4gOHV5hnGMMPVdU
Схемы на биполярном транзисторе
https://www.youtube.com/playlist?list=PL1VvMJF0dnhomTRm_Q6qous0s6GcVXDjN
------------------------------------------------------------------------
Заметки Ардуинщика Уроки Arduino
https://www.youtube.com/playlist?list=PLgAbBhxTglwmVxDDC5TSYUI91oZ0LZQMw
Заметки Ардуинщика Arduino - модули и датчики
https://www.youtube.com/playlist?list=PLgAbBhxTglwkg_Q8me6QO3JifVbaGDXAL
Заметки Ардуинщика Arduino - полезные трюки
https://www.youtube.com/playlist?list=PLgAbBhxTglwnL23mAbz7pleQGOduv-vRF
------------------------------------------------------------------------
it-inside.org Raspberry pi
https://www.youtube.com/playlist?list=PLWeA3JK7qaiovJ1kSaiEdDRuzELxcCxfA
it-inside.org Python
https://www.youtube.com/playlist?list=PLWeA3JK7qaipA13QI9h_4-X40161XZZ39
it-inside.org Scripting
https://www.youtube.com/playlist?list=PLWeA3JK7qaiqH4vA78UxoUKsQpFp71bwQ
it-inside.org Обзоры и тесты.
https://www.youtube.com/playlist?list=PLWeA3JK7qairbhDvcNrMshB3YUXwi1M6c
------------------------------------------------------------------------
arduinoLab
https://www.youtube.com/user/0arduinoLab/playlists
------------------------------------------------------------------------
AmperkaRu
https://www.youtube.com/user/AmperkaRu/playlists
------------------------------------------------------------------------


Программное обеспечение



https://www.raspberrypi.org/downloads/
https://wiki.debian.org/RaspberryPi
http://mirror.centos.org/altarch/7/isos/armhfp/
Дистрибутивы для Raspberry Pi
33 операционные системы для Raspberry Pi
https://www.armbian.com/
https://github.com/NickAlilovic/build
https://www.webosose.org/
CusDeb Веб интерфейс для создания образов ОС для Raspberry Pi онлайн
https://github.com/espruino/Espruino
http://pythonhosted.org/RPIO/
https://github.com/pyserial/pyserial
https://pypi.python.org/pypi/RPi.GPIO
https://sourceforge.net/projects/raspberry-gpio-python/
Distribution List for Raspberry Pi
Документация на систему фреймворка LLeo для ESP8266
------------------------------------------------------------------------
Микроконтроллеры на базе Java?
https://www.microej.com/product/vee/
https://developer.android.com/things/index.html
https://github.com/OpenSC/OpenSC/wiki/JavaCards
http://haiku-vm.sourceforge.net/
http://www.harbaum.org/till/nanovm/index.shtml
https://github.com/SINTEF-9012/JArduino/

https://github.com/samsung/uJVM
https://www.law.cornell.edu/wex/copyright
https://github.com/github/dmca/blob/master/2019/07/2019-07-29-uJVM.md
https://zenodo.org/record/2647414
Java VM for microcontrollers uJVM
------------------------------------------------------------------------
http://www.espruino.com/
http://netmf.github.io/

http://www.eluaproject.net/
http://www.ulisp.com/
------------------------------------------------------------------------
https://www.hex-rays.com/products/ida/support/download_freeware.shtml
http://www.windbg.org/
http://store.codesys.com/

https://radare.org/n/
https://github.com/radareorg/radare2-r2pipe
https://github.com/dukebarman/awesome-radare2

https://codisec.com/veles/
https://github.com/codilime/veles

https://github.com/pikvm/pikvm

http://opencircuitdesign.com/


Вопросы, ответы, решения



https://micropython.org/unicorn/
http://arduino.ru/forum
http://www.cyberforum.ru/arduino/
http://forum.cxem.net/index.php?/forum/99-arduino-и-raspberry-pi/
https://www.raspberrypi.org/forums/viewforum.php?f=84
http://raspberrypi.ru/forum/
https://forum.antichat.ru/threads/424366/
http://forum.amperka.ru/
http://roboforum.ru/
http://forum-ru.codesys.com/index.php
http://www.owen.ru/forum/forum.php
https://forum.reverse4you.org/
https://telegram.me/r0crew_bot
https://t.me/R0_Crew
https://t.me/hwnrf
Полезные сайты для мастеров.




Как сделать простой веб-сайт за один час, часть 1

заглянуть
конфигурации сервера
Ставим LEMP
https://www.hostinger.com/tutorials/how-to-install-lemp-centos7
https://www.cloudjojo.com/how-to-install-nginx-mariadb-php-lemp-on-centos-7/
https://serveradmin.ru/ustanovka-i-nastroyka-nginx-php-fpm-php7-1-na-centos-7/

1) установка nginx
yum install epel-release -y
yum install nginx -y
systemctl start nginx
systemctl enable nginx

2) установка MySQL (MariaDB)
yum install mariadb-server mariadb -y
systemctl start mariadb
systemctl enable mariadb
mysql_secure_installation
MariaDB запросит пароль root, так как это первоначальная установка, и у вас его нет, поэтому просто нажмите enter. Следующее приглашение спросит, хотите ли вы установить пароль root, введите Y и следуйте инструкциям

3) установка PHP v7.3
yum repolist
yum install yum-utils
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
curl -O http://rpms.remirepo.net/enterprise/remi-release-7.rpm
rpm -Uvh remi-release-7.rpm
yum --enablerepo=remi,remi-php73 install php-fpm php-common



обновить php
yum-config-manager --disable remi-php73
yum-config-manager --enable remi-php74
yum update -y

4) настройка связки nginx + php
/etc/nginx/conf.d - каталог для запуска конфигураций, сюда добавляем символические ссылки
например: ln -s /etc/nginx/virt_host/default_php.conf /etc/nginx/conf.d/
/etc/nginx/virt_host - папка для хранения файлов конфигураций хостов (можно обозвать по другому)

в дебиановых
sites-available
каталог для хранения файлов хостов
sites-enabled
каталог, предоставляющий Nginx список хостов, которые нужно обслуживать

Добавление виртуальных хостов на nginx (очень доступно)
https://shneider-host.ru/blog/dobavlenie-virtualnyh-hostov-na-nginx.html
https://www.8host.com/blog/nastrojka-virtualnyx-xostov-nginx-v-centos-7/
https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-on-centos-7
NGINX - создание виртуальных хостов
Один конфиг Nginx для работы с кучей разных сайтов
Настройка NGINX для поддержки одного и нескольких сайтов WordPress
Несколько сайтов на nginx, один IP-адрес


mkdir /etc/nginx/virt_host
nano /etc/nginx/virt_host/default_php.conf



netstat -tulpn | grep php-fpm
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 9084/php-fpm: maste

nano /etc/php-fpm.d/www.conf
Найдите и измените эти строки:

user = nginx
group = nginx
listen = /var/run/php-fpm/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660

5) проверяем
ln -s /etc/nginx/virt_host/default_php.conf /etc/nginx/conf.d/
nginx -t
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
sudo systemctl restart php-fpm nginx

https://nginxconfig.io/
https://www.nginx.com/resources/wiki/start/
https://docs.joomla.org/Nginx
https://www.nginx.com/resources/wiki/start/topics/recipes/yii/
https://www.nginx.com/resources/wiki/start/topics/recipes/drupal/
https://www.nginx.com/resources/wiki/start/topics/recipes/wordpress/
https://wordpress.org/support/article/create-a-network/
Как создать самоподписанный сертификат SSL для Nginx на CentOS 7
Настройка nginx для работы с сертификатами ГОСТ 2012 года
Как добавить модуль gzip в Nginx на CentOS 7
-----------------------------------------------------------------------------------
Документация Основы Веб-программирования WSGI (pep-333)
Развертывание приложения Python WSGI с помощью uWSGI+NGINX
Настройка uWSGI и NGINX для обслуживания приложений Python в Ubuntu 14.04
веб-интерфейс для python в ubuntu используя nginx и uwsgi
Как избежать 10 частых ошибок в настройке NGINX

Как завершить TLS-соединение в Nginx
Настройка LEMP-сервера с помощью Ansible для простых проектов. Часть первая: знакомство с Ansible
Настройка LEMP-сервера с помощью Ansible для простых проектов: практический курс. Часть первая
-----------------------------------------------------------------------------------
Динамические виртуальные хосты (dynamic vhost) в nginx
нужно для того, чтобы каждый раз при добавлении домена, не было нужды редактировать файл конфигурации. Достаточно один раз настроить, добавить\обновить DNS запись и добавить директорию на сервер.



проверять наличие директории, и если такой нет - показывать 404 ошибку:



Если необходимо только для поддоменов то:



вместо 404 ошибки можно сделать перенаправление (редирект, если будет угодно) на основной:



универсальный вариант для доменов и поддоменов:



Редирект с www на без www Nginx
Редирект с http на https Nginx


обратный прокси (доступ к ресурсу за nat)
nginx настраивается как тут добавляется файл server233_reverse.conf в /etc/nginx/virt_host, а символическая ссылка с него - в /etc/nginx/conf.d/




sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8888/tcp --permanent
sudo firewall-cmd --zone=external --add-port=28080/tcp --permanent
sudo firewall-cmd --zone=external --add-port=28888/tcp --permanent
sudo firewall-cmd --reload


появится доступ из внутренней сети по порту 8080, из наружной по порту 28080, к сайту на сервере 233, находящемся на порту 8080, с 8888 портом, на котором висит другой сайт - аналогично

Решение с помощью firewall-cmd
https://www.dmosk.ru/miniinstruktions.php?mini=router-centos
перенаправление сетевых запросов на сервер, стоящий за NAT и не имеющий прямого выхода во внешнюю сеть.

firewall-cmd --zone=external --permanent --add-forward-port=port=25:proto=tcp:toport=8025:toaddr=192.168.0.15

* где 25 — прослушиваемый внешний порт, для которого сработает перенаправление; tcp — используемый транспортный протокол; 8025 — на какой порт перенаправить запрос; 192.168.0.15 — IP-адрес сервера, на который отправляем запросы.

Разрешаем сам порт:
firewall-cmd --permanent --zone=external --add-port=25/tcp

Чтобы правило вступило в силу:
firewall-cmd --reload

установка squid с доступом по группам в AD, squidGuard, lighttpd+lightsquid, sams2 в centos часть 1
установка squid с доступом по группам в AD, squidGuard, lighttpd+lightsquid, sams2 в centos часть 2

https://nginx.org/ru/docs/http/ngx_http_proxy_module.html
https://www.scaleway.com/en/docs/how-to-configure-nginx-reverse-proxy/
https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/
https://nginx.org/ru/docs/http/ngx_http_proxy_module.html
Настройка обратного прокси Nginx на Linux
Проксирование запросов в nginx с помощью proxy_pass
Nginx как обратный прокси на Docker
Проксирование запросов в nginx с помощью proxy_pass
Разбираемся в HTTP прокси NGINX, балансировке нагрузки, буферизации и кешировании
Виртуальные хосты на nginx (CSC309)

Примеры редиректов в NGINX

Настройка Nginx для использования в качестве веб-сервера и обратного прокси-сервера для Apache в One Ubuntu 18.04 Server

https://docs.nginx.com/nginx/deployment-guides/load-balance-third-party/microsoft-exchange/
Настройка NGINX для проксирования почты
СКРЫВАЕМ ЧАСТЬ РЕСУРСОВ IIS СРЕДСТВАМИ NGINX AS REVERSE PROXY (CENTOS 7)
Обратный прокси на Nginx

http://nginx.org/en/docs/http/load_balancing.html

https://wiki.squid-cache.org/SquidFaq/ReverseProxy
Reverse proxy from nginx to squid?
Требуется связка: client <-> nginx <-> squid <-> site.
Обратный прокси от nginx до squid

взаимодействие с CGI
Configure Perl-FastCGI on CentOS 7 Nginx Server
https://www.nginx.com/resources/wiki/start/topics/examples/fcgiwrap/
http://nginx.org/ru/docs/http/ngx_http_fastcgi_module.html
настройка nginx+perl
https://www.linode.com/docs/web-servers/nginx/nginx-and-perlfastcgi-on-centos-5/

sudo yum install spawn-fcgi fcgiwrap

nano /etc/nginx/virt_host/default_perl.conf



ln -s /etc/nginx/virt_host/default_perl.conf /etc/nginx/conf.d/

nano /etc/sysconfig/spawn-fcgi




nano /var/www/default_perl/index.pl




systemctl enable --now spawn-fcgi


NGINX Unit
http://unit.nginx.org/
https://github.com/nginx/unit
http://hg.nginx.org/unit
https://hub.docker.com/r/nginx/unit/
https://github.com/miholeus/nginx-unit-python

Remi's RPM repository PHP with the NGINX unit application server

1. Official repository installation


2. Remi repository installation


3. Server and modules installation


4. Test configuration
4.1 Preparation
curl -O https://blog.remirepo.net/public/unit.config


4.2 Run the service:
# systemctl start unit

4.3 Configuration
Configuration is managed through a REST API:

# curl -X PUT --data-binary @unit.config --unix-socket /var/run/unit/control.sock http://localhost/config

And to check running configuration:
# curl --unix-socket /var/run/unit/control.sock http://localhost/config

5 Usage
You can access the application on each new port:

http://localhost:8300/ for default PHP
http://localhost:8356/ for PHP version 5.6
http://localhost:8372/ for PHP version 7.2
etc


https://unit.nginx.org/configuration/
Nginx Unit Веб. Мысли вслух
Установка NGINX + PHP7 последних версий
Nginx Unit + Django + Virtualenv - Конфигурация
Установка WordPress с модулем NGINX
Installing WordPress with NGINX Unit - NGINX
HOW TO INSTALL NGINX UNIT ON LINUX
NGINX Unit – Application Server from Nginx
Nginx Unit + Bitrix настройка
Настройка NGINX Unit под PHP


phpmyadmin
https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-phpmyadmin-on-ubuntu-20-04-ru
https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-phpmyadmin-with-nginx-on-an-ubuntu-18-04-server
https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-ubuntu-18-04-ru
https://howitmake.ru/blog/ubuntu/93.html

apt install nginx mysql-server
apt install php-fpm php-mysql
mysql_secure_installation
apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl

vim /etc/php/7.4/fpm/php.ini


ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin

/etc/nginx/sites-available/phpmyadmin


vim /var/www/html/info.php
<?php phpinfo() ?>

/etc/nginx/sites-available/default_php


cd /etc/nginx/sites-available/
ln -s ../sites-available/phpmyadmin
ln -s ../sites-available/default_php

nginx -t
systemctl reload nginx
service nginx restart

если
1044 - Для пользователя 'phpmyadmin'@'localhost' доступ к базе данных 'baza' закрыт

https://losst.ru/ustanovka-phpmyadmin-s-nginx-v-ubuntu-20-04
sudo mysql -u root -p
После ввода пароля root пользователя MySQL, введите следующие команды:
CREATE USER 'test'@'localhost' IDENTIFIED BY 'пароль';
GRANT ALL PRIVILEGES ON *.* TO 'test'@'localhost';
FLUSH PRIVILEGES;


lighttpd
https://wiki.archlinux.org/index.php/Lighttpd_(Русский)#Виртуальные_хосты
https://lorwiki.org.ru/wiki/Lighttpd
Веб-сервер Lighttpd - настраиваем виртуальные хосты.
Веб-сервер Lighttpd - включаем поддержку SSL.
Создание виртуальных хостов с mod_mysql vhost в Lighttpd на Ubuntu
lighttpd в качестве обратного прокси
https://wiki.archlinux.org/index.php/Lighttpd_(Русский)#Lighttpd_как_reverse_proxy_для_отдачи_статики
https://stackoverflow.com/questions/4859956/lighttpd-as-reverse-proxy
Обязательный пакет

server.modules = (
...
"mod_proxy",
...
)
Настройка вашего внешнего прокси: для lighttpd.conf @ 192.168.1.10

$HTTP["url"] =~ "^.*DeviceB" {
proxy.server = ( "" =>
(( "host" => "192.168.1.20", "port" => 80 ))
)
}

$HTTP["url"] =~ "^.*DeviceC" {
proxy.server = ( "" =>
(( "host" => "192.168.1.30", "port" => 80 ))
)
}
Для полной документации по lighttpd mod_proxy, вы можете обратиться к http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ModProxy

LAMP
http://www.apache.org/
https://downloads.apache.org/
https://projects.apache.org/releases.html
https://www.apachelounge.com/download/
https://help.ubuntu.ru/wiki/apache2
Большой Мануал по настройке lamp-сервера на Debian: Часть 0.
Установка и настройка сервера Apache на ubuntu
Установка веб-сервера Apache в CentOS 7
Настройка web сервера в CentOS 7
Веб-сервер Apache: установка, настройка и способы защиты от атак
Разработка сайтов на домашней машине с Fedora
Установка phpmyadmin на CentOS 7
Настройка Apache + SSL для работы сайта по HTTPS
Установка Apache HTTP Server 2.2.22 на Windows
Установка Apache и PHP на Windows

https://httpd.apache.org/docs/2.4/howto/reverse_proxy.html
How to Configure Apache HTTPS Reverse Proxy on CentOS Linux
Настройка mod_proxy в Apache
How To Use Apache HTTP Server As Reverse-Proxy Using mod_proxy Extension
How To Use Apache as a Reverse Proxy with mod_proxy on CentOS 7
Как использовать Apache в качестве обратного прокси с mod_proxy на CentOS 7
Как использовать Apache в качестве обратного прокси при помощи mod_proxy на Ubuntu 16.04
Настройка Reverse Proxy Apache (Debian 8) с автоматической выдачей Let's Encrypt
Using Let's Encrypt and Docker for Automatic SSL
Apache2 als Reverse Proxy für Exchange 2010 2013 2016 2019 inklusive Outlook Anywhere RPC over http
Настройка Apache Reverse Proxy для MS Exchange 2010, 2013, 2016 (Debian 8 Jessie/Ubuntu 14.04 Trusty Tahr)

HAProxy
Разбираем методы проксирования на основе HAProxy
Как установить и настроить HAproxy в Ubuntu 20.04 LTS

Самостоятельная настройка VDS / VPS

https://2ton.com.au/standalone_binaries/rwasa
https://github.com/caddyserver/caddy

https://letsencrypt.org/
https://whatsmychaincert.com/
Настройка HTTPS с сертификатами Let’s Encrypt

https://www.acme.com/software/thttpd/
thttpd -D -h 0.0.0.0 -p 3000 -d /static-website -u static-user -l - -M 60
https://redbean.dev/

Настройка Linux для высоконагруженных проектов и защиты от DDoS

5 способов создать мгновенный легкий веб-сервер с помощью командной строки Linux

использование docker
docker команды
centos docker yii
подборка по виртуализации и облакам
Опыт разработки высоконагруженной системы в рамках HighLoad Cup
Разработка под Docker. Локальное окружение. Часть 1
Разработка под Docker. Локальное окружение. Часть 2 — Nginx+PHP+MySql+phpMyAdmin
Готовим локальную среду Docker для разработки на PHP
https://github.com/PHPtoday-ru/docker-local-conf
https://hub.docker.com/_/scratch
Как поднять сайт в Docker
Настройка веб-сервера в Docker (NGINX + PHP + MariaDB)
Используем Docker для развертывания web-приложения bitrix
Настройка LEMP сервера с помощью docker для простых проектов. Часть первая: База
https://github.com/lipanski/docker-static-website
60+ Best Docker Containers for Home Server Beginners 2023
Docker Media Server Ubuntu 22.04 with 23 Awesome Apps
https://github.com/htpcBeginner/docker-traefik

управлялки
https://www.webmin.com/
https://cockpit-project.org/
http://vestacp.com/
https://ajenti.org/
https://www.rundeck.com/open-source

контент
RSS
https://freshrss.org/
https://tt-rss.org/
https://github.com/fossar/selfoss
https://github.com/samuelclay/NewsBlur
https://github.com/feedhq/feedhq
https://miniflux.app/

https://github.com/DIYgod/RSSHub
https://github.com/RSS-Bridge/rss-bridge
https://github.com/suin/php-rss-writer/
https://bitbucket.org/fivefilters/full-text-rss/src/master/
https://github.com/Kombustor/rss-fulltext-proxy
https://github.com/goutsune/unko
https://rssbox.herokuapp.com/

Обзор RSS-ридеров — self-hosted альтернативы Google Reader
Почему я по-прежнему пользуюсь RSS
Что такое RSS-лента и как ее создать

Трансляция потока с веб-камеры с помощью ffserver
Потоковое видео средствами ffserver & ffmpeg
Запускаем DOS игру в браузере
https://dos.zone/studio/
Пишем онлайн-тренажёр для Python, C++ и Go: опыт Практикума
Установка GitLab совместно с уже работающим Nginx
Рабочий стол Linux в браузере
https://github.com/navidrome/navidrome
https://www.navidrome.org/docs/installation/linux/
https://browsix.org/
https://github.com/plasma-umass/browsix
https://github.com/yudai/gotty
https://github.com/os-js/OS.js
https://github.com/os-js/osjs-server
https://xtermjs.org/
https://github.com/butlerx/wetty
https://chromium.googlesource.com/apps/libapps/+/master/hterm/
https://chromium.googlesource.com/apps/libapps/+/master/nassh/
https://github.com/DustinBrett/daedalOS

https://github.com/paradoxxxzero/butterfly
https://github.com/BlackArch/webshells
https://github.com/epinna/weevely3


Безопасный HTTPS-прокси менее чем за 10 минут
https://freemyip.com/
https://github.com/SenseUnit/dumbproxy

Cloud Commander – веб файловый менеджер для управления файлами и программами Linux через браузер

HTML код для получения видео с камеры, сохранить этот код в файл с расширением .htm и открыть веб-браузером.




Решение проблем неправильной кодировкой веб-страницы
Защита контента веб-сайта
Сетевой pivoting: понятие, примеры, техники, инструменты
75 фактов, которые полезно знать перед тем, как выложить сайт

https://doka.guide/


публикация
https://localtunnel.github.io/www/
https://ngrok.com/
Как без белого IP локальный веб-сервер сделать доступным из Интернета
https://github.com/samyk/pwnat

домен DNS DDNS
домен
https://www.freenom.com/
https://gen.xyz/
https://ru.hostings.info/domen-xyz
https://ru.tld-list.com/tld/xyz
https://codd-wd.ru/fwd/domains/
https://atex.ru/
https://sweb.ru/
https://freedns.afraid.org/

Свои DDNS (Dynamic DNS) сервер и клиент на базе Debian
Настройка DynDNS на Debian


SSL
https://zerossl.com/
https://letsencrypt.org/
сертификат
cert.мой_сайт.xyz
https://github.com/acmesh-official/acme.sh
Acme.sh + Ansible + Alias mode: Автоматизируем получение и распространение TLS сертификатов
Начало работы с acme.sh и клиентом Let’s Encrypt SSL
Сертификаты Let's Encrypt Установка и автоматизация с помощью acme-tiny
Как установить бесплатный сертификат Let’s Encrypt и настроить автоматический перевыпуск
Получение бесплатного SSL сертификата Let's Encrypt
Получаем сертификаты Let's Encrypt при помощи Certbot
Let's Encrypt: получение сертификата по шагам
Создание самоподписанного SSL-сертификата для Apache в Debian 10
Настройка Apache + SSL для работы сайта по HTTPS
Создание самоподписанного SSL-сертификата
Создание самоподписанного SSL-сертификата
https://www.altlinux.org/Создание_самоподписанных_сертификатов
OpenSSL: принципы работы, создание сертификатов, аудит
быстро выпустить свой сертификат через свой CA, добавив его к себе в доверенные
центр сертификации от компании SmallStep
https://github.com/smallstep/certificates

примеры создания самоподписанного серификата



certificate.crt — сам сертификат;
privateKey.key — файл ключа.

Файлы ключа и сертификата будут размещены в каталоге, указанном при вызове команды openssl в параметрах keyout и out.
При использовании OpenSSL необходимо также создать ключи Диффи-Хеллмана, чтобы
сгенерировать ключи Диффи-Хеллмана длиной 4096 бит и сохранить их в файл /etc/nginx/dhparam.pem:
нужно вбить команду




Преобразуйте файл сертификата в доверенный сертификат формата DER для импорта в браузер. Для этого выполните команду:



Импортируйте файл bump.der в список доверенных корневых центров сертификации на компьютерах пользователей.
При использовании некоторых браузеров (например, Mozilla Firefox) требуется также добавить сертификат в хранилище браузера.

создание самоподписанного сертификата на примере настойки openvpn
Как сделать и настроить собственный VPN




vps
Список сетей VPS/выделенных серверов, подвергающихся цензуре в России
https://poiskvps.ru/
https://vds.menu/
https://vps.today/

https://github.com/lesichkovm/awesome-vps-price-breakdown
https://www.oracle.com/cloud/free/
?
https://cybernews.com/best-web-hosting/free-vps-hosting/
https://www.ionos.com/servers/vps
https://www.digitalocean.com/
https://www.vultr.com/products/cloud-compute/
http://lowendstock.com/deals/
https://haphost.com/vps-hosting/
https://www.cloudatcost.com/

?
https://justhost.asia/
https://justhost.ru/
https://hshp.host/
https://ztv.su/
https://eurobyte.ru/
https://beget.com/
https://ihor.online/
https://62yun.ru/
https://ruweb.net/
https://weasel.cloud/
https://nuxt.cloud/
https://hip.hosting/
https://pq.hosting/
https://mchost.ru/
https://hostkey.ru/vps/
https://cp.inferno.name/
https://fornex.com/
https://firstbyte.ru/
https://aeza.net/ru
https://ishosting.com/
https://timeweb.cloud/
https://serverspace.ru/
https://www.ihc.ru/
https://firstvds.ru/
https://handyhost.ru/
https://www.majordomo.ru/
https://www.ipserver.su/
https://vds.sh/
https://4vps.su/

?
https://bitlaunch.io/

https://vpswala.org/cart/index.php?rp=/store/web-hosting
https://www.gigarocket.net/free-vps.php

Oracle раздает бесплатные VPS навсегда
Бесплатный VPS от Google навсегда
Регистрируем бесплатный (Always Free) VPS - сервер от Oracle навсегда, для сервисов Умного дома или чего-то другого.
Как получить бесплатный VPS (VDS) сервер навсегда

VPN на своём сервере с IP адресом из США за 1$ в месяц⁠⁠

проверить месторасположение vps
https://www.myip.com/
https://whatismycountry.com/



Как сделать простой веб-сайт за один час, часть 2

заглянуть
Как сделать простой веб-сайт за один час с помощью Github
От переводчика: инструкция максимально простая, зато на неё можно ссылаться, если новички задают вопрос, как запустить свой сайт в интернете.


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



В реальности, достаточно всего одного часа, чтобы сделать веб-сайт. Я это знаю, потому что засёк время, когда сам выполнял нижеследующие действия, и весь процесс занял чуть меньше часа (я даже зарегистрировал новый домен и создал новый аккаунт на Github для чистоты эксперимента). Код этого сайта тоже можно посмотреть на Github.



1. Идёте на namecheap.com и регистрируете домен. Этот шаг только в том случае, если нужно собственное доменное имя.



2. Создаёте аккаунт Github и скачиваете Git, если это ещё не сделано.



3. Создаёте директорию для размещения веб-сайта и перемещатесь туда командой cd: это команды mkdir my-site && cd my-site. Все будущие команды предполагают, что вы внутри рабочей директории.



4. Делаем новый репозиторий Github для сайта под названием yourusername.github.io. Например, я зарегистрирован под именем smilli, так что мой репозиторий называется smilli.github.io.



5. В рабочей директории запускаем git init и git remote add origin github.com/username/username.github.io.git, где вместо ‘username’ указываем свой имя пользователя.



6. Создаём файл ‘index.html’ в папке с сайтом с HTML-кодом главной страницы. Здесь необязательно тратить много времени, он может быть весьма лаконичным.



<html>
<head>
  <title>YOUR SITE TITLE</title>
  <-- Add some style to your site, see http://getbootstrap.com for details -->
  <link rel="stylesheet"
  href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
</head>
<body>
  <h1>YOUR SITE TITLE</h1>
  <p>Your text blahblahbhalbha</p>
  <p>Another paragraph!  Maybe more text!</p>
</body>
</html>


7. Пишем в коде главной страницы любой текст. Изменения отображаются локально командой python -m SimpleHTTPServer 8000 и набором адреса localhost:8000 в браузере.



8. Теперь запускаем следующие команды:

git add .
git commit -m "Initial commit"
git push -u origin master


9. Идём на yourusername.github.io. Здесь вы должны увидеть свой сайт! Поздравляю, вы что-то опубликовали в онлайне.



10. Если хотите собственное доменное имя, создаёте файл ‘CNAME’ (всё прописными буквами). Туда добавляете одну строчку ‘'yourdomainname.com' (без http или www). См. подробности конфигурации CNAME здесь.



11. Как и раньше, отправляем все изменения на Github.



git add .
git commit -m "Add CNAME"
git push


12. Теперь авторизуетесь на namecheap.com и щёлкаете по доменному имени, которое нужно, в списке своих доменов. Список будет примерно таким:







После выбора домена, появится ссылка «All Host Records» в левой панели во вкладке «Host Management». Нажмите на неё. Теперь вы увидите настройки по умолчанию, которые Namecheap указал для вашего сайта.







Измените настройки следующим образом (заменив ‘username’ на своё имя пользователя, конечно).







13. После вступления в действие изменений в DNS вы сможете увидеть свой сайт на своём домене! Поздравляю. :)

кратко сайт на Github
https://help.github.com/en/articles/about-supported-custom-domains
https://htmlacademy.ru/blog/99-github-as-hosting
https://ru.hexlet.io/courses/html/lessons/github/theory_unit


  1. Зарегистрируйтесь на https://github.com/, если еще не сделали этого.

  2. Создайте новый репозиторий с именем username.github.io, где username — ваш ник на Github.

  3. Создайте новый файл. Когда репозиторий не пуст, то в верхнем правом углу есть кнопка Create New File, но сейчас, когда еще нет ни одного файла, создать первый можно по прямой ссылке https://github.com/username/username.github.io/new/master, где username — ваш ник.

  4. Введите имя index.html и скопируйте туда содержание файла index.html, который у вас получился в предыдущем уроке.

  5. Нажмите кнопку "Commit new file".

  6. Повторите то же самое для файла style.css.

  7. Через несколько мгновений страница станет доступна по вашему адресу https://username.github.io

сайт на Node.js
Как запустить простой статический сайт за пять ≈пятиминутных шагов при помощи Node.js и Express

Шаг 1. Установить движок Node.js в соответствии с инструкциями, имеющимися в вики для каждой из поддерживаемых операционных систем. (Для Windows достаточно скачать и запустить MSI-файл, для CentOS — воспользоваться системным менеджером пакетов, и так далее.)

Шаг 2. Создать пустой каталог и поместить в нём файл «site.js» следующего содержания:



Настройки staticSiteOptions можно переменить по собственному вкусу.

Шаг 3. В том же каталоге подать команду «npm install express», которая автоматически создаст подкаталог «node_modules» и установит туда Express, скачав из Интернета.

Шаг 4. В том же каталоге создать подкаталог «static» и поместить в нём файлы статического сайта. Этот подкаталог станет корнем сайта. Файлы с именами «index.html» будут использоваться как файлы-индексы. Иными словами, при ответе сервера на запрос с адресом, содержащим только имя некоторого каталога (будь то корень сайта или один из его подкаталогов), будет показан файл с именем «index.html» из указанного каталога (если есть).

Шаг 5. В том же каталоге подать команду «node site», которая запустит сервер. Убедившись в её работоспособности, обеспечить автозапуск этой команды в этом каталоге после каждой перезагрузки операционной системы. (Например, на CentOS 6.2 можно использовать upstart для этой цели.)

https://github.com/vercel/next.js
https://github.com/visnup/npm-www
https://github.com/ceejbot/npm-www
https://github.com/ErikHumphrey/Next


работа с nodejs
Установка Node.js с помощью NVM
Шпаргалка по пакетному менеджеру NPM
Автозапуск приложения Node.js на CentOS 6.2

конструкторы статических сайтов
https://gohugo.io/
https://github.com/gohugoio/hugo
https://jekyllrb.com/
https://github.com/jekyll/jekyll
https://github.com/jekyll/jekyll-sitemap
https://github.com/planetjekyll/awesome-jekyll-plugins
https://guides.hexlet.io/jekyll/
Создаем блог используя Jekyll и GitHub Pages

https://glitch.com/
https://neocities.org/ (замена narod.ru)
https://github.com/neocities
https://app.netlify.com/drop
https://pages.github.com/

https://john-doe.neocities.org/ (веб-сайт представляет собой один HTML - файл)
https://j3s.sh/thought/my-website-is-one-binary.html
однофайловый распространяемый веб-сервер
https://github.com/lipanski/docker-static-website

https://docs.parseplatform.org/parse-server/guide/

разные CMS
https://www.host-food.ru/faq/installation/

https://www.drupal.org/download
https://www.drupal.org/project/drupal
https://ru.wordpress.org/download/
https://downloads.joomla.org/
https://modx.com/download
https://get.typo3.org/
https://www.php-fusion.co.uk/home.php
https://www.django-cms.org/en/
https://plone.org/
https://www.opencart.com/index.php?route=cms/download
https://magento.com/tech-resources/download
https://www.prestashop.com/en/download
https://www.bitrix24.ru/
https://contao.org/en/
https://strapi.io/
https://apostrophecms.com/
https://github.com/getgrav/grav

установка
установка LEMP

Веб-сервер на основе Nginx и PHP-FPM
Оптимальная настройка Nginx
Виртуальные хосты в Apache и Nginx

Установка стека LEMP в Ubuntu 18.04
https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-ubuntu-18-04
Настройка сервера Linux Nginx, PHP 7, MySQL (LEMP) с поддержкой сертификата Let’s Encrypt в Ubuntu Linux 18.04 Bionic
https://www.digitalocean.com/community/tutorials/nginx-ubuntu-18-04-ru
Руководство по настройке блога WordPress на nginx.

Drupal
https://help.ubuntu.ru/wiki/drupal
Перед началом использования создайте для Drupal базу данных с помощью клиента mysql:
mysql -u root -p -e "CREATE DATABASE databasename CHARACTER SET utf8 COLLATE utf8_general_ci;"
Также желательно завести отдельного пользователя MySQL, который будет иметь доступ только к созданной базе:
mysql -u root -p
вводим там запросы:





MySQL: Полный список часто используемых и полезных команд
посмотреть всех пользователей
SELECT User, Host FROM mysql.user;
SELECT User, Host, Password, password_expired FROM mysql.user;
увидеть разрешения для пользователя
SHOW GRANTS FOR 'test'@'localhost'
отзыв всех разрешений
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'test'@'localhost'
удалить пользователя test
drop user 'test'@'localhost'
SHOW DATABASES;
удалить базу
DROP DATABASE имя_базы_даных;

«Could not load MODX config file»
/setup/index.php

http://создаю-сайты.рф/как-войти-на-сайт-в-качестве-администр/
https://2ip.ru/cms/
chrome Wappalyzer



разные фреймворки
JavaScript подборка
Установка Node.js с помощью NVM
Шпаргалка по пакетному менеджеру NPM
---------------------------------------------------------------------------------------
Python подборка
Django подборка
если покопаться, то можно сделать бесплатный сайт на django

Установка Django CMS в Ubuntu 16.04 64bit
Ленивый деплой Django проекта UWSGI + NGINX (UBUNTU 20.04)
How To Set Up Django with Postgres, Nginx, and Gunicorn on Ubuntu 20.04
Запуск Django сайта на nginx + Gunicorn + SSL
Настройка Debian, Nginx и Gunicorn для Django проекта

установка Django в virtualenv с помощью pip через proxy с pyenv

Pelican: установка и базовая настройка сайта
Pelican. Расширенные настройки блога.
---------------------------------------------------------------------------------------
PHP подборка
https://www.yiiframework.com/
https://www.yiiframework.com/doc/guide/2.0/ru
https://github.com/yiisoft/yii2/tree/master/docs/guide-ru
centos docker yii

https://symfony.com/
https://laravel.com/
https://phalcon.io/ru-ru
https://nette.org/en/
---------------------------------------------------------------------------------------
https://rubyonrails.org/
http://rusrails.ru/
https://ru.wikibooks.org/wiki/Ruby_on_Rails
---------------------------------------------------------------------------------------
https://www.phoenixframework.org/
Начни изучать Elixir прямо сейчас! Перевод всей серии статей готов
Разработка приложений на Elixir/Phoenix с помощью Docker
---------------------------------------------------------------------------------------
http://zotonic.com/
---------------------------------------------------------------------------------------
Golang подборка
Revel — высокопроизводительный веб-фреймворк на языке Go

Разработка Web-приложений и микросервисов на Go с Gin
https://github.com/gin-gonic/gin

https://gobuffalo.io/
https://beego.me/

Как развернуть веб-приложение Go с помощью Docker и Nginx в Ubuntu 18.04

---------------------------------------------------------------------------------------
Java подборка
https://spring.io/
http://javastudy.ru/frameworks/spring/
https://javaee.github.io/javaserverfaces-spec/
http://javastudy.ru/frameworks/jsf-2-0/
https://vaadin.com/
http://www.gwtproject.org/
https://grails.org/
---------------------------------------------------------------------------------------
подборка С/C++
https://www.gnu.org/software/cgicc/index.html
https://github.com/drogonframework/drogon
https://www.webtoolkit.eu/wt
https://cutelyst.org/
Создание сайта с помощью C++
Сайт на C++ своими руками с помощью библиотеки cgicc
Простой backend на C++: это возможно?
Полноценный веб-сайт на C++ и немного диванной аналитики

всячина
Создаём личный «Архив интернета»
https://archiveweb.page/
------------------------------------------------------------------------
https://www.adminer.org/
https://phpdocker.io/generator
https://nginxconfig.io
https://github.com/digitalocean/nginxconfig.io

https://ngrok.com/download

------------------------------------------------------------------------
https://www.selenium.dev/
https://www.cypress.io/
https://playwright.dev/
https://nightwatchjs.org/
https://www.npmjs.com/package/puppeteer
JavaScript, Node, Puppeteer: автоматизация Chrome и веб-скрапинг
------------------------------------------------------------------------
Возрождение простых сайтов. Статика, 0kB JS, ничего лишнего
------------------------------------------------------------------------
Не ходи в Fediverse, там тебя ждут неприятности. — Ну как же туда не ходить? Они же ждут
https://fediverse.party/
https://the-federation.info/
https://joinmastodon.org/
https://github.com/mastodon/mastodon
https://hubzilla.org/
https://framagit.org/hubzilla/core
https://www.gnusocial.rocks/
https://notabug.org/diogo/gnu-social
------------------------------------------------------------------------
Как взламывают сайты
Как взламывают сайты (часть 2)
------------------------------------------------------------------------
хитрости
Некоторые приёмы работы в Битрикс на SQL и BASH
Как восстановить пароль администратора Битрикс
Как сбросить пароль для пользователей Bitrix?

ссылки

https://github.com/ripienaar/free-for-dev

Как сделать простой веб-сайт за один час
Как запустить простой статический сайт за пять ≈пятиминутных шагов при помощи Node.js и Express
Создаем свой персональный сайт на Github
GitHub как хостинг для сайтов
http://webquant.ru/posts/pelican/

Самостоятельная настройка VDS / VPS
Как начать участвовать в Open Source
Работа с GitHub
http://git-scm.com/book/ru/v1
http://hosting101.ru/more-providers.html

http://hldns.ru/
https://github.com/wavedocs/freedns/
Список бесплатных DNS-сервисов

Расшариваем веб-сайт на localhost в глобальную сеть интернет.
5 способов создать мгновенный легкий веб-сервер с помощью командной строки Linux
uzverss Бесплатный django хостинг
установка dokuwiki centos php nginx




Python подборка, часть 1
Python подборка, часть 2

развернуть
https://www.lektorium.tv/course/22895
http://pyvideo.ru/
http://pep8.ru/video/
http://devfreecasts.org/python/
https://www.youtube.com/results?search_query=Python
https://www.youtube.com/results?search_query=Программирование+на+python
https://vk.com/videos-54530371?q=python§ion=search
------------------------------------------------------------------------
loftblog Основы Python
https://www.youtube.com/playlist?list=PLY4rE9dstrJwmHGhM-IA98GZf6I--4hKi
Igor Danilov Python
https://www.youtube.com/playlist?list=PLxIsrZhloP2x1Rq5isjAWvp1F0W0YcQae
IT Hobbies Python tutorials Оконное приложение на Python c Tkinter
https://www.youtube.com/playlist?list=PL4sJ_PtqW49CVVyZEkniNFBTazcdOkv2M
Гоша Дударь Python программирование / Уроки для начинающих
https://itproger.com/course/python
https://www.youtube.com/playlist?list=PL0lO_mIqDDFXgfuxOEDTCwsWmKezOaDTu
------------------------------------------------------------------------
Максим Быстрянцев Python для детей
https://www.youtube.com/playlist?list=PLZV589BVrI-40O-d-PNcBt-c4gdmRVxrx
Максим Быстрянцев python олимп
https://www.youtube.com/playlist?list=PLZV589BVrI-7fmn-D6K7rjrtQOfGFvxkB
------------------------------------------------------------------------
ProgrammingHub Python для начинающих
https://www.youtube.com/playlist?list=PLPRsICSqu9FqVjZaRnpPwShaMyFhmOIk0
ProgrammingHub Python API Tutorial
https://www.youtube.com/playlist?list=PLPRsICSqu9Fp8v5Os1UU8QcSuRaN5efGf
ProgrammingHub Python OOP (Объектно Ориентированное Программирование)
https://www.youtube.com/playlist?list=PLPRsICSqu9ForcHr2p_r_NmoCzVBivVIq
ProgrammingHub Виртуальное окружение Python
https://www.youtube.com/playlist?list=PLPRsICSqu9Fo01tAB6obZVcHyKbNGdmky
ProgrammingHub Python + Flask web framework
https://www.youtube.com/playlist?list=PLPRsICSqu9FqiH15mDTCiyUys_cFaVz-I
------------------------------------------------------------------------
ADV-IT Python для Начинающих
https://www.youtube.com/playlist?list=PLg5SS_4L6LYtHCActBzbuGVYlWpLYqXC6
ADV-IT Python для НЕ Начинающих
https://www.youtube.com/playlist?list=PLg5SS_4L6LYt7Wmh8zBKjZ_ltaoDXSEmk
------------------------------------------------------------------------
Тимур Юнусов | Валерия Юрьевна Евдокимова | [Foxford] Язык Python для начинающих, 6–8 классы [2015]
https://www.youtube.com/playlist?list=PLlpeNvMw3g6fe5ucvATefStgfBVkWDN7H
CG Ninjas | Воркшопы о компьютерной графике Python Base
https://www.youtube.com/playlist?list=PLfPOtOI0SRrWSZlScnyeveO6jA4Rli9I8
Susan Ibach and Christopher Harrison Уроки Python
https://www.youtube.com/channel/UCsSQgz9oCdVyvZ-bViMj4_g
Уроки Python Введение в программирование на языке Python
https://www.youtube.com/playlist?list=PLQDKSpN49uZYknWOWmjwjwHFCXkd6PV0J
Хауди Хо™ - Просто о мире IT! Python Джедай [2016 год] По стандартам США!
https://www.youtube.com/playlist?list=PLvoBekrlHDgROfUUHMbrrdsy_b2y2V_rj
------------------------------------------------------------------------
Алексей Умнов | Академия Яндекса Компьютерные науки Курс "Язык Python"
https://vk.com/yandex.academy
https://www.youtube.com/playlist?list=PLJOzdkh8T5kpIBTG9mM2wVBjh-5OpdwBl
Александр Кошелев | Кирилл Борисов Академия Яндекса Компьютерные науки Python Party
https://www.youtube.com/playlist?list=PLQC2_0cDcSKATa--MQfwAnkvNWC8ypNKl
------------------------------------------------------------------------
Алексей Голобурдин,
Диджитализируй!
https://course.to.digital/
Что должен знать Python веб-разработчик для приёма на работу?
https://www.youtube.com/watch?v=9kLI6R0heTQ
Python разработка
https://www.youtube.com/playlist?list=PLAk6CfuV7hyooMRqhHAO9-Gt6kOQqM_-Y
Изучаем исходники Python библиотек
https://www.youtube.com/playlist?list=PLAk6CfuV7hyoIL0iJgOP0fPYfCXAV3lsC
Пишем ИТ продукт с нуля
https://www.youtube.com/playlist?list=PLAk6CfuV7hyr3eQOnWt8kAHZRPfb6P6zB
------------------------------------------------------------------------
Сергей Балакирев selfedu
https://proproprogs.ru/python
Уроки PYTHON для начинающих
https://www.youtube.com/playlist?list=PLA0M1Bcd0w8xIdFNA95aQrwJ_GQJEV8ko
Добрый, добрый Python - уроки для начинающих
https://www.youtube.com/playlist?list=PLA0M1Bcd0w8yWHh2V70bTtbVxJICrnJHd
Объектно-ориентированное программирование (ООП) на
https://www.youtube.com/playlist?list=PLA0M1Bcd0w8zPwP7t-FgwONhZOHt9rz9E
Python 3. Регулярные выражения
https://www.youtube.com/playlist?list=PLA0M1Bcd0w8w8gtWzf9YkfAxFCgDb09pA
Уроки по wxPython (GUI)
https://www.youtube.com/playlist?list=PLA0M1Bcd0w8zyJOJXbvTKROHs2JJVGB6C
Алгоритмы и структуры данных на Python
https://www.youtube.com/playlist?list=PLA0M1Bcd0w8yF0PO0eJ9v8VlsYEowmsnJ
Алгоритмы обработки сигналов на Python
https://www.youtube.com/playlist?list=PLA0M1Bcd0w8yZNgl5J814WQykTZnzj771
Нейронные сети на Python. Уроки
https://www.youtube.com/playlist?list=PLA0M1Bcd0w8yv0XGiF1wjerjSZVSrYbjh
Tensorflow 2.x - уроки (для Python)
https://www.youtube.com/playlist?list=PLA0M1Bcd0w8ynD1umfubKq1OBYRXhXkmH
Фракталы на python
https://www.youtube.com/playlist?list=PLA0M1Bcd0w8ylFC3tve_AVXEttPBmKDqw
Структуры данных
https://www.youtube.com/playlist?list=PLA0M1Bcd0w8x4jEp1r_aN3xlnlbfx9RQ2
Генетические алгоритмы. Теория и практика
https://www.youtube.com/playlist?list=PLA0M1Bcd0w8zkG8DJSyqrKyBfDtRJ2Ohh
------------------------------------------------------------------------
Илья Щуров| Python HSE
https://www.youtube.com/channel/UCr-KbmZWfDyTbqT_clZmhfw/feed
------------------------------------------------------------------------
WeBest Программирование на Python 3
https://www.youtube.com/playlist?list=PLfAlku7WMht6janxhS4D7XqajI7Knq1sS
WeBest Библиотека Tkinter Python 3
https://www.youtube.com/playlist?list=PLfAlku7WMht4Vm6ewLgdP9Ou8SCk4Zhar
------------------------------------------------------------------------
Yellow-Duck.net
https://www.youtube.com/channel/UCms3x1-QRmPMoKlA3Xpl8Zg/search?query=python
Yellow-Duck.net Python. Видеопримеры к курсам.
https://www.youtube.com/playlist?list=PL6LDsbZOeyrxrPfYl3Zh6pSBN1OOPMTjZ
Yellow-Duck.net Основы объектно-ориентированного програмирования
https://www.youtube.com/playlist?list=PL6LDsbZOeyrx462VmH18qS0a9Dw9LwpSu
------------------------------------------------------------------------
Чарльз Северенс | НОУ ИНТУИТ Введение в программирование на Python
http://www.intuit.ru/studies/courses/12179/1172/info
https://www.youtube.com/playlist?list=PLDrmKwRSNx7LSwH9FcFmWyHRr7W-UkbNT
------------------------------------------------------------------------
ИМКН УрФУ. Языки сценариев (Python) Подборка плейслистов
https://www.youtube.com/channel/UClQJvX1TXm0rXoxFtTczNog/playlists
https://www.youtube.com/channel/UClQJvX1TXm0rXoxFtTczNog
------------------------------------------------------------------------
Евгений Колтырин Python + PyGame. Создаём игры!
https://www.youtube.com/playlist?list=PLTteFr-DCrkQJm-QKnzQz-NyRTWzMse22
------------------------------------------------------------------------
ITGENIO Игры и проекты на Python
https://www.youtube.com/playlist?list=PL2_WTnP_CpnsnggVoFY9xK4wrhxwiezr7
------------------------------------------------------------------------
кузьма кузин Пишем игры на Python
https://www.youtube.com/playlist?list=PLk3dllNv0g25CVxcMx0ZqdMF-9jkeQNNY
кузьма кузин как создать сайт на Django Python
https://www.youtube.com/playlist?list=PLk3dllNv0g252fFKpiYeJaSRwEpBzhUcu
кузьма кузин Kivy - Python для Android
https://www.youtube.com/playlist?list=PLk3dllNv0g25LZNuptJZ8Bjj9gFIJ3McH
------------------------------------------------------------------------
IT Propaganda ЛП000 Ленивый питон - Программирование на Python
https://www.youtube.com/playlist?list=PLbKwBvrpogbZfU50rPMmXow3aMFjIw4gk
IT Propaganda ПК00 Питон на сайте Codecademy на русском языке
https://www.youtube.com/playlist?list=PLbKwBvrpogbaoy98U1HX0PlONUldxmGJF
IT Propaganda Питон на HackerRank
https://www.youtube.com/playlist?list=PLbKwBvrpogbZA3Cqmj4_1uv6JyJTDGIHt
------------------------------------------------------------------------
Павел Сутырин UNИX Python 2014 Спецкурс ВМК МГУ
https://www.youtube.com/playlist?list=PLPErILqzuTQr7QJ4rAFJVvzdTEFFPjaGz
Павел Сутырин UNИX Python-Dev 2015 Спецкурс ВМК МГУ
https://www.youtube.com/playlist?list=PLPErILqzuTQqXEIjjN6gwFzV1yRuwReR0
------------------------------------------------------------------------
[UNИX] Язык программирования Python (осень 2020)
https://www.youtube.com/playlist?list=PL6kSdcHYB3x693X-s-DOR-hzybJqcYiOX
[UNИX] Язык программирования Python (осень 2021)
https://www.youtube.com/playlist?list=PL6kSdcHYB3x4a_XEgZSeUnzMroujtDw0H
[UNИX] Язык программирования Python (осень 2022)
https://www.youtube.com/playlist?list=PL6kSdcHYB3x7ZVz-ZmjNc048-iIZVLpqu
------------------------------------------------------------------------
Ковчег знаний
Георгий Курячий Язык программирования Python
https://www.youtube.com/playlist?list=PLOaW8o20mEghAOnlW8zg9WCtjXMgF3hFI
https://www.youtube.com/@unx7784/playlists
------------------------------------------------------------------------
Тимофей Хирьянов 2020 Практика программирования на Python 3
https://www.youtube.com/playlist?list=PLRDzFCPr95fIDJUvFxvzWxg-V9BmZlMMe
Тимофей Хирьянов 2019 Практика программирования на Python 3
https://www.youtube.com/playlist?list=PLRDzFCPr95fLuusPXwvOPgXzBL3ZTzybY
Тимофей Хирьянов 2017-2018 Алгоритмы и структуры данных на Python 3
https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0
Тимофей Хирьянов 2021 Анализ данных на Python
https://www.youtube.com/playlist?list=PLRDzFCPr95fIgPrFFW-0nXT5YH6ZnjRM6
Практика по курсу: http://judge.mipt.ru/mipt_cs_on_python3
Учебная программа: https://github.com/mipt-cs/course-site-python3/wiki
https://github.com/tkhirianov/fox_python_2016
https://github.com/tkhirianov/lections_2019
https://github.com/tkhirianov/lections_2020/tree/master/python
https://github.com/tkhirianov/course-site-python3
https://github.com/tkhirianov/Tkinter-GUI-Application-Development-Blueprints-Second-Edition
------------------------------------------------------------------------
ITVDN Python Essential
https://www.youtube.com/playlist?list=PLvItDmb0sZw_MVK2txwtBSHAzaYRrOdiJ
ITVDN Python Starter
https://www.youtube.com/playlist?list=PLvItDmb0sZw8RfG5odrtstiYkmiPg_Yo_
ITVDN Вебинары Python
https://www.youtube.com/playlist?list=PLvItDmb0sZw_x1QivR1pTQ6tAK8Awb57L
------------------------------------------------------------------------
Компьютерные науки Алексей Умнов Курс "Язык Python"
https://www.youtube.com/playlist?list=PLJOzdkh8T5kpIBTG9mM2wVBjh-5OpdwBl
------------------------------------------------------------------------
Computer Science Center | CSC
Екатерина Тузова | CSC | Лекториум | Python
https://www.lektorium.tv/lecture/14092
https://www.youtube.com/playlist?list=PL-_cKNuVAYAXkJLFpu-dq3nphjftOOR6C

Сергей Лебедев | Computer Science Center | CSC | Python
https://compscicenter.ru/courses/python/2015-autumn/
https://www.youtube.com/playlist?list=PLlb7e2G7aSpTTNp7HBYzCBByaE1h54ruW

Алексей Крюков Python Курс лекций CScenter Екатерина Тузова
https://www.youtube.com/playlist?list=PLEl2mW_X5hhkgW_e7B_ukSwPm3Q28eSyt

Алексей Александрович Кладов | Computer Science Center | CSC | Программирование на Python, осень 2018
https://compscicenter.ru/courses/python/2018-autumn/classes/4004/
https://www.youtube.com/playlist?list=PLlb7e2G7aSpQhNphPSpcO4daaRPeVstku

Иван Бибилов | Computer Science Center | CSC | Программирование на Python (2021)
https://compscicenter.ru/courses/python/2021-spring/
https://www.youtube.com/playlist?list=PLlb7e2G7aSpQmGnhrxlqI4iMXNv4R7khy

Вадим Леонардович Аббакумов | Computer Science Center | CSC |
Анализ данных на Python в примерах и задачах. Часть 1 (весна 2018)
https://www.youtube.com/playlist?list=PLlb7e2G7aSpRb95_Wi7lZ-zA6fOjV3_l7
Анализ данных на Python в примерах и задачах. Часть 2 (осень 2018)
https://compscicenter.ru/courses/data-mining-python2/2018-autumn/classes/3997/
https://www.youtube.com/playlist?list=PLlb7e2G7aSpT1ntsozWmWJ4kGUsUs141Y
------------------------------------------------------------------------
Roman Brovko
Сергей Лебедев | Computer Science Center | CSC | Python Python (2015)
https://www.youtube.com/playlist?list=PLwwk4BHih4fjnBhqvYFvPxP5quUXR1CMj
------------------------------------------------------------------------
Uproger
Python собеседования
https://www.youtube.com/playlist?list=PLysMDSbb9Hcyxwq966ET1_6dXkNF_PW0L
Задачи с собеседований Python
https://www.youtube.com/playlist?list=PLysMDSbb9HcwsFjHAQulUNURVBYOHhLAq
Парсинг на Python
https://www.youtube.com/playlist?list=PLysMDSbb9HcwWWhs1Cm9EF1sv0fo8kII5
Numpy полный бесплатный курс
https://www.youtube.com/playlist?list=PLysMDSbb9Hcz3Gdi9oV-btohZ9zhths-r
Django создание сайтов с нуля.
https://www.youtube.com/playlist?list=PLysMDSbb9HcyLnXB9eLiYmsznjzEXo_6W
Python и базы данных
https://www.youtube.com/playlist?list=PLysMDSbb9HcxdvtQSkYoO7xaF3SvGUD8n
Наука о данных
https://www.youtube.com/playlist?list=PLysMDSbb9HcwIpPPBR72Qe7CMCgx-D9Ob
------------------------------------------------------------------------
Aleksey Pirogov Python basics (in Russian)
https://www.youtube.com/playlist?list=PLUFoWyWge7mrKhLggkLAF4gh3am1yYgri
Aleksey Pirogov Advanced Python (in Russian)
https://www.youtube.com/playlist?list=PLUFoWyWge7mrOAlym1HxJRtQh4Fedg9kO
Aleksey Pirogov Мастерклассы
https://www.youtube.com/playlist?list=PLUFoWyWge7mqWTjKSKfDW3GlXRVmQDbA-
------------------------------------------------------------------------
Лекции по теоретической физике Python в научных вычислениях
http://www.inp.nsk.su/~grozin/python/
https://www.youtube.com/playlist?list=PLPFUq1zn8x34Bx6CWXJyTAZVCGrJLQxlf
------------------------------------------------------------------------
Python Meetup 2013
https://www.youtube.com/playlist?list=PLjiAaL1HtGPboVADzNr2_WdSX3Jte5lG9
Python Meetup 2014
https://www.youtube.com/playlist?list=PLjiAaL1HtGPY3c3odkiXkFD0XuxvQc2Gf
------------------------------------------------------------------------
Василий Айтипиплов PyCon Russia '13
https://www.youtube.com/playlist?list=PLRdS-n5seLRoptAxb8tW1uZd_mrCY_ZRt
Василий Айтипиплов PyCon Russia '14
https://www.youtube.com/playlist?list=PLRdS-n5seLRoQ3VZIHCGEC62vThIrieAu
Василий Айтипиплов PyCon Russia '15
https://www.youtube.com/playlist?list=PLRdS-n5seLRqGHVrXZHxXfdw--aAsMdiL
Василий Айтипиплов Pycon 2016
https://www.youtube.com/playlist?list=PLRdS-n5seLRqszBqVDF342RMlCWgOTm6q
------------------------------------------------------------------------
Moscow Python
https://www.youtube.com/user/moscowdjangoru/playlists
------------------------------------------------------------------------
DataArt Python
https://www.youtube.com/playlist?list=PLU6_HdJGVDx_9Fkt1OVL_xBDoY9EMDrwu
------------------------------------------------------------------------
GeekBrains Пишем свой веб-сервер на Python
https://www.youtube.com/watch?v=nhG_qhOP_k0
------------------------------------------------------------------------
Mihail Kozlov Python
https://www.youtube.com/playlist?list=PL5KGx5_ykLX8qOlP1CaxxlTXKOZhIvfZl
------------------------------------------------------------------------
Олег Молчанов Парсинг (скрапинг) сайтов
https://www.youtube.com/playlist?list=PLlWXhlUMyoobMzou-Hl6HQWcClzg85_TZ
Олег Молчанов Работа с API Вконтакте (vk.com)
https://www.youtube.com/playlist?list=PLlWXhlUMyooZx_th2MsNYTeLamdfCMAOm
Олег Молчанов Telegram боты на Python
https://www.youtube.com/playlist?list=PLlWXhlUMyooaTZA4vxU9ZRZQPCFxUq9VA
Олег Молчанов Python практика
https://www.youtube.com/playlist?list=PLlWXhlUMyooab9Tji3bNX8iyVDkllA3mP
Олег Молчанов Асинхронность в Python
https://www.youtube.com/playlist?list=PLlWXhlUMyooawilqK4lPXRvxtbYiw34S8
Олег Молчанов Уроки Kivy для Android
https://www.youtube.com/playlist?list=PLlWXhlUMyoobAlP3mZ0_uuJagsDSg_5YT
Олег Молчанов Создание простого blockchain на Python
https://www.youtube.com/playlist?list=PLlWXhlUMyooZWYV5ilzjRvRfmkYsDQuom
Олег Молчанов Sublime Text 3
https://www.youtube.com/playlist?list=PLlWXhlUMyooYUgxmybYJiYNTicSHR8nme
Олег Молчанов Введение во Flask (Блог)
https://www.youtube.com/playlist?list=PLlWXhlUMyooZr5R2u2Zwxt6Pw6iwBo5y5
Олег Молчанов Ответы на вопросы (подкасты)
https://www.youtube.com/playlist?list=PLlWXhlUMyooaFmWf92uUsUfdlOHmmUTfu
Олег Молчанов Python Casts
https://www.youtube.com/playlist?list=PLlWXhlUMyooYqypXIju-5czBtppKaWimP
------------------------------------------------------------------------
Артем Егоров egoroffchannel
Язык программирования PYTHON для начинающих
https://www.youtube.com/playlist?list=PLQAt0m1f9OHvv2wxPGSCWjgy1qER_FvB6
Модули Python
https://www.youtube.com/playlist?list=PLQAt0m1f9OHv8zY70xUqLYNQDMmwi7wGl
Алгоритмы и структуры данных в Python
https://www.youtube.com/playlist?list=PLQAt0m1f9OHsaqspc3ncC-WsuYyuRf2-f
Объектно-ориентированное программирование (ООП) Python
https://www.youtube.com/playlist?list=PLQAt0m1f9OHvyjJNjZK_unnLwMOXPTja8
Tkinter Python
https://www.youtube.com/playlist?list=PLQAt0m1f9OHsd6U5okp1XLoYyQR0oBjMM
Разбор задач для спонсоров. Программирование Python
https://www.youtube.com/playlist?list=PLQAt0m1f9OHvscrP2pec3JUAzIcRxDc5E
Анализ данных с помощью Pandas
https://www.youtube.com/playlist?list=PLQAt0m1f9OHvibdelR6YgWvxKRv-FDz4D
Pygame
https://www.youtube.com/playlist?list=PLQAt0m1f9OHsMP67JNONOMh13dw_UHf52
Игра "Змейка" на Python. Snake game Python
https://www.youtube.com/playlist?list=PLQAt0m1f9OHun6Q9uZPNryl5gXm1ng_kd
Создаем игру 2048 на Python
https://www.youtube.com/playlist?list=PLQAt0m1f9OHvjnzfCUmIxfHR-beScFFeG
Создаем игру "Пинг-Понг"
https://www.youtube.com/playlist?list=PLQAt0m1f9OHt4G8G016AJOQuX4u1MekE-
Модуль turtle. Создаем графику в Python
https://www.youtube.com/playlist?list=PLQAt0m1f9OHvowenYcOHrRP_v1VN-0TWF
Фишки Питона
https://www.youtube.com/playlist?list=PLQAt0m1f9OHvjhjLZhYsJirRYIPKLoJML
------------------------------------------------------------------------
Dmitry Glazentsov Автоматизация рутинной задачи
https://www.youtube.com/playlist?list=PLpQhlQbV3rwnw8RA9L6ZQcNS2nxO_bV0T
------------------------------------------------------------------------
Видеоуроки Python
http://python.divz.ru/
https://github.com/solkogan?tab=repositories
https://play.google.com/store/apps/details?id=ru.pythono.pythono
https://www.youtube.com/playlist?list=PLMS-se7ZYfux7-xa8oHqy3YHvA9bWZcOh
------------------------------------------------------------------------
Alexander Savchuk Python/Практика
https://www.youtube.com/playlist?list=PL1dS0bMnExD5AsKOoyIlKyNauWB0dAfLE
------------------------------------------------------------------------
Технострим Mail.Ru Group Введение в анализ данных (весна 2016)
https://www.youtube.com/playlist?list=PLrCZzMib1e9p5F99rIOzugNgQP5KHHfK8
------------------------------------------------------------------------
Основы программирования для географов Python. Программирование в ArcGIS for Desktop
https://www.youtube.com/playlist?list=PLbozJClxFQYVb3-f4Age1Wldd0YrGPNUS
Основы программирования для географов Python. Программирование в QGIS
https://www.youtube.com/playlist?list=PLbozJClxFQYXuIowdEYjUQRLEatzO2CqJ
Основы программирования для географов Python in Geography
https://www.youtube.com/playlist?list=PLbozJClxFQYWAlAHPwFP62Qes9ioVwgSs
------------------------------------------------------------------------
Andrey Sozykin Глубокое обучение на Python
http://www.asozykin.ru/courses/nnpython
https://www.youtube.com/playlist?list=PLtPJ9lKvJ4oiz9aaL_xcZd-x0qd8G0VN_
------------------------------------------------------------------------
Igor Starikov Выступления
https://www.youtube.com/playlist?list=PL2Z1mFj1DwKS0NcYjtGL2fgFOmmDgHdhF
Igor Starikov PyCon US
https://www.youtube.com/playlist?list=PL2Z1mFj1DwKTfahTnjoFKW_0dflGlnBW8
Igor Starikov PyCon US и прочие на русском
https://www.youtube.com/playlist?list=PL2Z1mFj1DwKS_n06FajgeaM9-YZFnlClu
------------------------------------------------------------------------
LvivPy LvivPy#5
https://www.youtube.com/playlist?list=PL7qCyIe8wyWCYdGRJbcUyvv0PUQ_xKMky
------------------------------------------------------------------------
DrapsTV Python3 Advanced Tutorials
https://www.youtube.com/playlist?list=PL1A2CSdiySGIPxpSlgzsZiWDavYTAx61d
DrapsTV Hacking With Python
https://www.youtube.com/playlist?list=PL1A2CSdiySGLtKwqBnqj9BON6QQjWkP4n
------------------------------------------------------------------------
Vitaly Pavlenko Веб-программирование на Физтехе
https://www.youtube.com/playlist?list=PLzQrZe3EemP5KsgWGnmC0QrOzQqjg3Kd5
------------------------------------------------------------------------
ТЫЖПРОГРАММИСТ Python
https://www.youtube.com/playlist?list=PLto9y93q2lqjn3r0skYzmTT2XV4mYN4gw
------------------------------------------------------------------------
Kris Occhipinti Python - Telnet part#1
https://www.youtube.com/watch?v=fIOk2EcgOI8
ТЫЖПРОГРАММИСТ 1.9 Python. Telnet. Подключение к нескольким устройствам.
https://www.youtube.com/watch?v=BQJxHttLLZU
------------------------------------------------------------------------
Python. Разработка веб-приложений
https://vk.com/wall-80984752_1074
https://vk.com/wall-80984752_1080
https://vk.com/wall-80984752_1105
https://vk.com/wall-80984752_1117
--------------------------------
https://vk.com/wall-54530371_49794
https://vk.com/wall-54530371_49904
https://vk.com/wall-54530371_50003
https://vk.com/wall-54530371_50237
--------------------------------
Профессиональные Python курсы online
https://vk.com/wall-80984752_1141
https://vk.com/wall-80984752_1174
https://vk.com/wall-80984752_1178
https://vk.com/wall-80984752_1186
----------------------------------
http://pythonz.net/videos/44/
https://github.com/s16h/py-must-watch




Python подборка, часть 2
Python подборка видео

развернуть

Сайты



http://python.org/
http://python.su/
https://pypi.org
http://pep8.ru/
http://pyston.org/
http://python-3.ru/
http://pythonworld.ru/
https://pythono.ru/
http://pythonicway.com/
https://python-scripts.com/
http://pythonz.net/
http://pynsk.ru/
http://djbook.ru/
http://vpython.org/
https://www.djangoproject.com/
http://wsgi.readthedocs.org/en/latest/
http://learning-python.com/
http://www.rmi.net/~lutz/
https://pythonpedia.com/
https://github.com/vinta/awesome-python
https://sites.google.com/view/pypry/


Блоги



http://starship.python.net/crew/index.html
http://pep8.ru/blog/
http://ru_python.livejournal.com
https://vk.com/python_programing
https://vk.com/python_progers
https://vk.com/python_developers
https://vk.com/python_3
https://vk.com/vk_python
https://vk.com/django_framework
https://vk.com/pythonic_way
https://vk.com/club24847633
https://vk.com/club52104930
https://vk.com/iamdev/python
https://vk.com/pynsk
https://vk.com/tproger/python
https://plus.google.com/communities/103393744324769547228
https://plus.google.com/communities/103624658452637344893
http://zelark.ru/blog/tags/python/
http://pythlife.blogspot.ru/
http://pythonblogg.blogspot.ru/
http://asvetlov.blogspot.ru/search/label/python
http://koder-ua.blogspot.ru/
http://python4u.blogspot.de/
http://python-lab.blogspot.ru/
http://pythonr.blogspot.ru/search/label/python
http://john16blog.blogspot.ru/search/label/python
http://gorodovets.blogspot.ru/search/label/Python
http://www.haikson.com/Postpart/programming/python/
http://chevalry.livejournal.com/tag/python
http://mylinuxprog.blogspot.ru/search?q=python
http://poliarush.com/tag/python
http://0agr.ru/blog/tag/python/
http://www.odmin4eg.ru/tag/python/
http://www.8host.com/blog/category/python/
http://blog.e0ne.info/category/Python.aspx
http://django-tutorial.blogspot.ru/
https://python.ivan-shamaev.ru/
https://proglib.io/

каналы
https://t.me/ru_python
https://t.me/python_beginners
https://t.me/ru_python_beginners
https://t.me/propython
https://t.me/rudepython
https://t.me/rupython
https://t.me/pp_telegram


Статьи



Python на Хабре
Учебник по языку программирования Python (хабраиндекс)
Учим Python качественно
Материалы продвинутого уровня по Питону
Перевод интерактивного учебника «Problem Solving with Algorithms and Data Structures»
Полезные ресурсы для Python-разработчиков
Python для чайников, где взять материалы?
Лучшие проекты, в которых стоит поучаствовать, чтобы примкнуть к Open Source движению и развить свои навыки. Часть четвертая. Python
-----------------------------------------------------------------------------------
Python: коллекции, часть 4/4: Все о выражениях-генераторах, генераторах списков, множеств и словарей
-----------------------------------------------------------------------------------
Как перенести код Python 2 на Python 3
Python, xlsx с картинками, макросами, media-art, внедренными объектами
Еще раз о многопоточности в одну строку

Python 3 - Введение в asyncio
Примеры использования asyncio: HTTPServer?!
Немного фактов о python asyncio
Какая асинхронность должна была бы быть в Python
Асинхронный python без головной боли
Асинхронный python без головной боли (часть 2)

Как устроен GIL в Python
GIL и его влияние на многопоточность Python
Сложности сборки Python3 + Qt5 приложений под Windows

Многопоточность Python без GIL
https://github.com/colesbury/nogil
https://hub.docker.com/r/colesbury/python-nogil
-----------------------------------------------------------------------------------
19 способов сделать сокет-сервер на Python. Эволюционный подход. Часть 1. Введение
19 способов сделать сокет-сервер на Python. Эволюционный подход. Часть 2. Блокирующие сокеты и многозадачность
19 способов сделать сокет-сервер на Python. Эволюционный подход. Часть 3. Первый подход к асинхронности
19 способов сделать сокет-сервер на Python. Эволюционный подход. Часть 4. Сопрограммы в Python
19 способов сделать сокет-сервер на Python. Эволюционный подход. Часть 5. Асинхронное программирование
-----------------------------------------------------------------------------------
Ключевые навыки Python-программиста
41 вопрос о работе со строками в Python

Пишем красивый идиоматический Python
Как писать питонический код: три рекомендации и три книги
Погружение в пучину интерпретатора Python. Ч1
Python(x, y) — набор библиотек и программного обеспечения для численных расчетов, анализа и визуализации данных на основе Python
PyBrain работаем с нейронными сетями на Python
Пользовательские атрибуты в Python
Python: вещи, которых вы могли не знать
Непрерывное тестирование питонопроекта
Руководство по магическим методам в Питоне
Исчерпывающее руководство по множествам в Python
Использование регулярных выражений в Python для новичков
Регулярки (regex) — основы для решения кейсов, про которые не пишут в статьях про основы
Несколько продвинутых приемов языка Python
17 лучших однострочников на Python
Решил 50 задач и ответил на вопрос — Python или JavaScript?

-----------------------------------------------------------------------------------
Внутри виртуальной машины Python. Часть 1
Внутри виртуальной машины Python. Часть 2
Как устроен парсер Python, и как втрое уменьшить потребление им памяти
-----------------------------------------------------------------------------------
Введение в функциональное программирование на Python
Руководство по интроспекции на Python
Классы, методы Python 3. Примеры ООП (объектно ориентированное программирование)
Программирование на Python. Часть 7: Специальные методы и атрибуты классов
http://www.ibm.com/search/csass/search/?q=python&
Понимаем декораторы в Python'e, шаг за шагом. Шаг 1
Понимаем декораторы в Python'e, шаг за шагом. Шаг 2
Python: декорируем декораторы. Снова
Путь к пониманию декораторов в Python
Разбираемся с декораторами в Python
Упущенные из виду факты о переменных и объектах в Python: все дело в указателях

-----------------------------------------------------------------------------------
22 лучших репозитория на GitHub для новичков, изучающих Python
Лучшие библиотеки Python 2024 года
Топ-5 лучших библиотек Python с графическим интерфейсом
Python + Pyside2 или просто «Калькулятор»
Простой GUI калькулятор на Python #1. Создание дизайна приложения
Кроссплатформенный переключатель прокси-сервера на Python + Qt
Быстрый, мощный интерфейс на Python
Старый новый pywinauto: автоматизация Windows GUI на Python на примере install/uninstall
Как Numba ускорит ваш код на Python в 13 раз
-----------------------------------------------------------------------------------
Создание .exe файла для авторизации и взаимодействия с VK API при помощи Python
cx_Freeze + virtualenv = баги и зигзаги
Создание запускаемых файлов из скриптов на языке Python с помощью cx_Freeze
https://github.com/brentvollebregt/auto-py-to-exe
https://pypi.org/project/auto-py-to-exe/
как сделать единый файл exe из скрипта python используя py2exe и PyInstaller
Сборка испольняемого файла из скриптов Python
Змеиная анатомия. Вскрываем и потрошим PyInstaller

Как ускорить Python с помощью C-расширений
ВСТРАИВАНИЕ PYTHON В C/C++: ПЕРВАЯ ЧАСТЬ

Как опубликовать ваш пакет в PyPI используя PyCharm
Об одном способе защиты исходников Python-программы
Как обезопасить исходники своего python-приложения
Исследование защиты Wing IDE
Сервис для системного администратора. Часть 1
Прямой доступ к диску из python
От Python скрипта до WSGI приложения
Некогда объяснять, тебе срочно нужен фронтенд на Brython
Змеиный фрукт или фруктовый Питон?
-----------------------------------------------------------------------------------
Практическое руководство по разработке бэкенд-сервиса на Python
DLL & Python
Пишем кросс-платформенную библиотеку на Python
Как разрабатывать на Python под Android
Полноценное Python приложение на Android
Android и Python. Мобильная разработка.
Python для Android
10 приложений для изучения Python на Android-устройствах
Вирус на Python: Изучаем возможности полноценного злокодинга на интерпретируемом языке
Поддержка токенов PKCS#11 с ГОСТ-криптографией в Python. Часть I
-----------------------------------------------------------------------------------
Змеиный укус. Python-фреймворк Viper для анализа малвари
Защита от "дурака" в программах на языке Python

Установка питона и пакетов
Интересные приёмы для Python
Python: скрипт инкрементального или полного бекапа файлов

Восстановление (импутация) данных с помощью Python
4х повышение разрешения изображения с использованием ESRGAN
Обработка изображений с помощью библиотеки Python Pillow
-----------------------------------------------------------------------------------
Собираем питоновский пакет и выкладываем на pypi
Пишем обертку над API, делаем из нее PIP-пакет, подключаем тестирование от Travis CI и смотрим на лицензии открытого ПО
Использование регулярных выражений в Python для новичков
5 способов использования подчеркивания (_) в Python
6 рекомендаций по определению метода __init__
Что такое *args и **kwargs в Python?
Магия __slots__
Специальный атрибут __slots__ класса Python.
Python: модуль argparse – опции командной строки в примерах
Гайд по магическим методам в Python

Синтез речи под Linux на Python + RHVoice
Как с помощью Python создать приложение для расшифровки речи в реальном времени
-----------------------------------------------------------------------------------
Автоматизация ip-сети с помощью подручных инструментов (Python)
Python для сетевых инженеров: начало пути
Автоматизация задач инженера/администратора при помощи Python
Составляем DNS-запрос вручную
Руководство по модулю клавиатуры Python

HTML парсер на Python
Парсинг ресурсов при помощи Python
Работа с ssh в Python
Python scirpt на службе сетевого администратора
telnetlib — Telnet client
Скачивание музыки из VK, используя VK api и Python3
Обучаемый Telegram чат-бот с ИИ в 30 строчек кода на Python
Парсим мемы в питоне: как обойти серверную блокировку
Скачивание любого сайта с помощью Python себе на компьютер
https://github.com/rajatomar788/pywebcopy/
https://uzverss.livejournal.com/116630.html
Как всегда знать свой адрес в сети и не платить за белый IP
Web3.0 на Python, часть 1: основы
-----------------------------------------------------------------------------------
Использование Sublime Text Editor 2 в качестве редактора текста Python 3.x
Python Developer Tools от Microsoft. Начало работы
Особенности Jupyter Notebook, о которых вы (может быть) не слышали
Как работать с PyScript — фреймворком для фронтенда на Python
Советы, которые могут спасти Вас от ужасов PyYAML
-----------------------------------------------------------------------------------
Возьми Python с собой
Pelican. Установка блога.
консоль python в роли командной строки
-----------------------------------------------------------------------------------
СРАВНЕНИЕ ВЕБ-СЕРВЕРОВ ПРИЛОЖЕНИЙ НА ОСНОВЕ PYTHON
DHCP+Mysql сервер на Python
PYTHON TO JS TRANSLATION

WSGI - протокол связи Web-сервера с Python приложением
Документация Основы Веб-программирования WSGI (pep-333)
Развертывание приложения Python WSGI с помощью uWSGI+NGINX
Настройка uWSGI и NGINX для обслуживания приложений Python в Ubuntu 14.04
веб-интерфейс для python в ubuntu используя nginx и uwsgi
-----------------------------------------------------------------------------------
Последовательный порт. Да, поможет нам Python!
Bubot — очень легкий фреймворк на Python 3 для программирования роботов и домашней автоматизации
CPython internals: A ten-hour codewalk through the Python interpreter source code
Транскомпилируемые языки: проекты конвертации код-в-код
Полезные советы по Python, которых вы ещё не встречали
перевод статьи "Bookmark this if you are new to Python (especially if you self-learn Python)"
Как подружить PyTorch и C++. Используем TorchScript
Python: как уменьшить расход памяти вдвое, добавив всего одну строчку кода?
Как сделать «двойной break», то есть выйти из вложенного цикла, в Python?
Отладка в python через консоль
Пишем инструменты командной строки на Python с помощью Click

Как спасти потерянный исходный код на Python, если он все еще не выгружен из памяти
Oh no! This package is Python 2 only (что делать если библиотека только на python 2)
На чем программировать AI: Theano vs TensorFlow vs Scikit-learn

Чему я научился на своём горьком опыте (за 30 лет в разработке ПО)
Обширный обзор собеседований по Python. Советы и подсказки


Книги



http://www.proklondike.com/books/python.html
http://padabum.net/search.php?tag=Python
http://scanlibs.com/python/
http://bookwebmaster.narod.ru/python.html
I am a DEVELOPER Книги по Python
http://pyqtforlinguists.appspot.com/book.pdf
Построение систем машинного обучения на языке Python
Основы программирования на языке Python С. К. Буйначев, Н. Ю. Боклаг 2014
Введение в программирование на Python (2-е изд.) Северенс Ч. 2016
Язык программирования Python (2-е изд.) Сузи Р.А. 2016
Простой Python. Современный стиль программирования Билл Любанович 2016
Программирование на Python для начинающих Майк МакГрат 2015
-----------------------------------------------------------------------------------
Владимир Дронов, Николай Прохоренок Python 3 и PyQt 5. Разработка приложений (2016)
Владимир Дронов, Николай Прохоренок Python 3 и PyQt 5. Разработка приложений (2016)
Н. Прохоренок, В. Дронов»Python 3 и PyQt 6
-----------------------------------------------------------------------------------
Скотт Мейерс Секреты Python. 59 рекомендаций по написанию эффективного кода
Основы Data Science и Big Data. Python и наука о данных Дэви Силен, Арно Мейсман 2017
Райан Митчелл Скрапинг веб-сайтов с помощью Python 2016
Python. Создание приложений (2016) Уэсли Дж. Чан
Разработка геоприложений на языке Python Эрик Вестра 2016
Учебник Python 3: быстрый старт Федоров Д. Ю. 2016
-----------------------------------------------------------------------------------
Д. Златопольский «Основы программирования на языке Python» 2017
Д. Златопольский «Основы программирования на языке Python» 2017
Python для детей и родителей Брайсон Пэйн 2017
A Byte of Python (Russian) Версия 2.01
-----------------------------------------------------------------------------------
Программирование на языке Python. Учебный курс (2017) Роберт Седжвик, Кевин Уэйн, Роберт Дондеро
Автостопом по Python (2017) Кеннет Рейтц, Таня Шлюссер
Автостопом по Python (2017) Кеннет Рейтц, Таня Шлюссер
Секреты Python. 59 рекомендаций по написанию эффективного кода (2016) Бретт Слаткин
-----------------------------------------------------------------------------------
Дмитрий Мусин "Самоучитель Python"
Учебное пособие для вузов Чернышев, С. А. «Основы программирования на Python» 2022
Кольцов Д. М. «Python. Полное руководство» 2022
Кольцов Д. М. «Python. Полное руководство» 2022
Кольцов Д., Дубовик Е. «Справочник Python» 2021
Кори Альтхофф Сам себе программист. Как научиться программировать и устроиться в Ebay? 2018
Кори Альтхофф Computer Science для программиста-самоучки 2023
Основы Python. Научитесь думать как программист [2021] Аллен Б. Дауни
Изучаем Python. Программирование игр, визуализация данных, веб-приложения Эрик Мэтиз 2017
Изучаем Python [2020] Эрик Мэтиз
Учимся программировать с примерами на Python [2020] Эрик Фримен
Учимся программировать с примерами на Python [2020] Эрик Фримен
Начинаем программировать на Python (5-е издание) Тони Гэддис
Тони Гэддис - Начинаем программировать на Python (5-е изд) - 2022
Алексей Горожанов "PyQT для лингвистов"
Построение систем машинноrо обучения на языке Python
Программируем коллективный разум
-----------------------------------------------------------------------------------
Автоматизация повседневных задач на Python
Автоматизация рутинных задач с помощью Python: практическое руководство для начинающих Эл Свейгарт 2016
Автоматизация рутинных задач с помощью Python: практическое руководство для начинающих Эл Свейгарт 2017
Свейгарт Эл «Автоматизация рутинных задач с помощью Python» 2021
Анил Агравал, Сародж Агравал «Автоматизация предприятия с помощью Python» 2022
Ной Гифт, Кеннеди Берман, Альфредо Деза, Григ Георгиу Python и DevOps: Ключ к автоматизации Linux. 2022
Ленц М. Python: Непрерывная интеграция и доставка 2020
-----------------------------------------------------------------------------------
Ной Гифт, Кеннеди Берман, Альфредо Деза, Григ Георгиу «Python и DevOps» 2022

Python 3 для сетевых инженеров
Чоу Эрик «Python для сетевых инженеров» 2023
Полное руководство работы с сетями на Python Эрик Чоу
-----------------------------------------------------------------------------------
Джастин Зейтц, Тим Арнольд «Black Hat Python» 2022
Джастин Зейтц, Тим Арнольд «Black Hat Python» 2022
Воган Ли «Python для хакеров» 2023
Сборник статей «Python глазами хакера» БХВ-Петербург, 2022
-----------------------------------------------------------------------------------
Бизли Дэвид «Python. Исчерпывающее руководство» 2023
Непрактичный Python: занимательные проекты для тех, кто хочет поумнеть. Ли Воган 2021
Свейгарт Эл «Python. Чистый код для продолжающих» 2022
Бейдер Д. Чистый Python. Тонкости программирования для профи. 2018
Computer Science для программиста-самоучки. Все, что нужно знать о структурах данных и алгоритмах. 2023.
Хиллард Дейн Секреты Python Pro. 2021.
Такфилд Брэдфорд «Алгоритмы неформально» 2022
Имран Ахмад «40 алгоритмов на Python» 2023 год
Чистый Python. Тонкости программирования для профи Бейдер Дэн 2018
Кристиан Майер «Однострочники Python» 2022
Шоу Энтони «Внутри CPython» 2023

Книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
http://www.libkruz.com/1-programming.html
http://24videokurs.ru/tag/python/
https://vk.com/itcookies/book
http://tparser.org/Python
ftp Python1

https://codernet.ru/books/python/

поиск по торрентам
https://searchtor.to/
https://search.exfreedomist.com/


Переводы



https://digitology.tech/docs/python_3/index.html
https://github.com/sfcl/python_doc_3.8.3
https://aliev.github.io/runestone/
https://github.com/aliev/runestone
http://juster.fvds.ru/learnwithpython/ru2e/index.html
http://wombat.org.ua/AByteOfPython/
http://forum.ubuntu.ru/index.php?topic=218329.0
http://snakeproject.ru/python/ver1.3.htm
https://lancelote.gitbooks.io/intermediate-python/content/
https://github.com/borisuvarov/python-cookbook-ru
Gray Hat Python (Перевод: Prosper-H, M.Chumichev)


Подборки



Полезные ресурсы для Python-разработчиков
https://github.com/TheKnightsWhoSayNi/info/wiki/Hat
https://vk.com/page-54530371_48786262
https://vk.com/wall-54530371_1075
http://www.pvsm.ru/cat/python
http://www.py-my.ru/#tags=python
http://python.rabota-ka.ru/search/label/#python
http://ideafix.name/?cat=18
http://zetblog.ru/?s=python
http://rtfm.co.ua/tag/python/
http://rtfm.co.ua/category/python/
https://azure.microsoft.com/ru-ru/documentation/articles/?platform=python
http://cyberleninka.ru/search?q=python
http://jenyay.net/Programming/Python
http://intepra.ru/wiki/doku.php?id=about_python
http://tparser.org/Python
http://jenyay.net/Programming/Python
https://tproger.ru/digest/data-science-python/
http://tproger.ru/articles/free-programming-books/#python
http://tproger.ru/tag/python/
http://tproger.ru/?s=Python
https://tproger.ru/digest/python-articles/
https://xakep.ru/category/coding/python/
http://robocraft.ru/tag/python
https://russianpenguin.ru/tag/python/
http://ideafix.name/?cat=18
http://kostikvento.ru/cython/docs/
http://snakeproject.ru/rubric/rubric.php?id=5
http://djangosimple.blogspot.ru/search/label/python
http://pygo.ru/
http://itscreen.tk
http://www.slideshare.net/search/slideshow?searchfrom=header&q=python&ud=any&ft=all&lang=ru&sort=
https://www.8host.com/blog/category/python/
https://uproger.com/category/post/python/
https://habr.com/ru/hub/python/all/


Видео



http://uzverss.livejournal.com/tag/python

Profile

uzverss: (Default)
uzverss

December 2024

S M T W T F S
12345 67
891011121314
15161718192021
22232425262728
293031    

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 18th, 2025 11:40 am
Powered by Dreamwidth Studios