Forwarded from Библиотека питониста | Python, Django, Flask
Python 3. Самое необходимое
Авторы: Н. Прохорёнок, В. Дронов
Те, кто профессионально работают с одним из языков программирования, знают, что многие функции и возможности языка применяются редко или просто не нужны. Однако авторы учебников и самоучителей уделяют время всему мануалу, вместо того чтобы сэкономить время читателю и рассказать о важном. Авторы этой книги пошли по второму пути и рассказали только о самом необходимом из Python 3.
#книгадня
Скачать книгу:
https://t.me/progbook/1281
Авторы: Н. Прохорёнок, В. Дронов
Те, кто профессионально работают с одним из языков программирования, знают, что многие функции и возможности языка применяются редко или просто не нужны. Однако авторы учебников и самоучителей уделяют время всему мануалу, вместо того чтобы сэкономить время читателю и рассказать о важном. Авторы этой книги пошли по второму пути и рассказали только о самом необходимом из Python 3.
#книгадня
Скачать книгу:
https://t.me/progbook/1281
Как делать скриншоты в python?
Или
import pyautogui
Чтобы сделать скриншот, достаточно воспользоваться методом screenshot(), который предоставляет нам данный модуль:
screen = pyautogui.screenshot('screenshot.png')
print(screen)
Если Вам нужно сделать скриншот определенной части экрана, можно воспользоваться свойством region:
pyautogui.screenshot('screenshot.png',region=(0,0, 300, 400))
Или
import pyautogui
Чтобы сделать скриншот, достаточно воспользоваться методом screenshot(), который предоставляет нам данный модуль:
screen = pyautogui.screenshot('screenshot.png')
print(screen)
Если Вам нужно сделать скриншот определенной части экрана, можно воспользоваться свойством region:
pyautogui.screenshot('screenshot.png',region=(0,0, 300, 400))
В этой статье, которая является первой из цикла, мы познакомим вас с проблемой безопасности алгоритмов машинного обучения. Это не требует от читателя высокого уровня знаний машинного обучения, достаточно иметь общее представление о данной области.
https://m.habr.com/ru/company/dsec/blog/437092/
https://m.habr.com/ru/company/dsec/blog/437092/
Хабр
Безопасность алгоритмов машинного обучения. Атаки с использованием Python
Машинное обучение активно применяется во многих областях нашей жизни. Алгоритмы помогают распознавать знаки дорожного движения, фильтровать спам, распознавать лица наших друзей на facebook, даже...
История Django.
Django развивался естественным образом по ходу разработки настоящих
коммерческих приложений, написанных группой веб-разработчиков
из Лоуренса, штат Канзас, США. Он появился на свет осенью 2003
года, когда два программиста, работавших в газете Lawrence JournalWorld, Адриан Головатый (Adrian Holovaty) и Саймон Уиллисон (Simon
Willison), начали использовать для создания приложений язык Python.
Группа World Online, отвечавшая за разработку и сопровождение неcкольких местных новостных сайтов, трудилась в условиях, диктуемых
жесткими сроками, характерными для журналистики. Журналисты
(и руководство) требовали, чтобы новые функции и целые приложения
реализовывались на всех сайтах, включая LJWorld.com, Lawrence.com
и KUsports.com, в очень сжатые сроки, зачастую в течение нескольких
дней или даже часов с момента постановки задачи. Необходимо было
что-то предпринять. Саймон и Адриан вышли из положения, создав
фреймворк для веб-разработки, который помогал экономить драгоценное время, – только так можно было писать поддающиеся сопровождению приложения в столь сжатые сроки.
Django развивался естественным образом по ходу разработки настоящих
коммерческих приложений, написанных группой веб-разработчиков
из Лоуренса, штат Канзас, США. Он появился на свет осенью 2003
года, когда два программиста, работавших в газете Lawrence JournalWorld, Адриан Головатый (Adrian Holovaty) и Саймон Уиллисон (Simon
Willison), начали использовать для создания приложений язык Python.
Группа World Online, отвечавшая за разработку и сопровождение неcкольких местных новостных сайтов, трудилась в условиях, диктуемых
жесткими сроками, характерными для журналистики. Журналисты
(и руководство) требовали, чтобы новые функции и целые приложения
реализовывались на всех сайтах, включая LJWorld.com, Lawrence.com
и KUsports.com, в очень сжатые сроки, зачастую в течение нескольких
дней или даже часов с момента постановки задачи. Необходимо было
что-то предпринять. Саймон и Адриан вышли из положения, создав
фреймворк для веб-разработки, который помогал экономить драгоценное время, – только так можно было писать поддающиеся сопровождению приложения в столь сжатые сроки.
Летом 2005 года, доведя фреймворк до состояния, когда на нем было реализовано большинство сайтов World Online, группа, в которую к тому времени вошел еще и Джейкоб Каплан-Мосс (Jacob Kaplan-Moss), решила выпустить его в виде ПО с открытым исходным кодом. Фреймворк был выпущен в июле 2005 года и назван Django в честь джазового гитариста Джанго Рейнхардта (Django Reinhardt).
Сегодня, по прошествии нескольких лет, Django превратился в популярный проект с открытым исходным кодом, имеющий десятки тысяч
пользователей и разработчиков по всему миру. Два первоначальных
разработчика World Online («Великодушные Пожизненные Диктато-
ры» Адриан и Джейкоб) по-прежнему определяют общее направление
развития фреймворка, но в целом он в гораздо большей степени является плодом коллективных усилий.
Сегодня, по прошествии нескольких лет, Django превратился в популярный проект с открытым исходным кодом, имеющий десятки тысяч
пользователей и разработчиков по всему миру. Два первоначальных
разработчика World Online («Великодушные Пожизненные Диктато-
ры» Адриан и Джейкоб) по-прежнему определяют общее направление
развития фреймворка, но в целом он в гораздо большей степени является плодом коллективных усилий.
Немного о CGI.
Один из самых простых и незамысловатых способов создать веб-приложение на Python с нуля – это воспользоваться стандартом Common
Gateway Interface (CGI), который приобрел популярность примерно
в 1998 году. Сделать это можно, в общих чертах, следующим образом:
создайте сценарий на языке Python, который будет возвращать HTML, сохраните его на вебсервере с расширением .cgi и зайдите на эту страницу с помощью броузера. Вот и все.
Ниже приведен пример CGI-сценария на языке Python, который выводит названия десяти свежеизданных книг из базы данных. Не вдаваясь в детали синтаксиса сценария, попробуйте понять, как он работает2 :
#!/usr/bin/env python
777-888-999
"""import MySQLdb
777-888-999
print “Content-Type: text/html\n”
print “<html><head><title>Книги</title></head>”
print “<body>”
print “<h1>Книги</h1>”
print “<ul>”
777-888-999
connection = MySQLdb.connect(user=’me’, passwd=’letmein’, db=’my_db’)
cursor = connection.cursor()
cursor.execute(“SELECT name FROM books ORDER BY pub_date DESC LIMIT 10”)
777-888-999
for row in cursor.fetchall():
print “<li>%s</li>” % row[0]
777-888-999
print “</ul>” """
Один из самых простых и незамысловатых способов создать веб-приложение на Python с нуля – это воспользоваться стандартом Common
Gateway Interface (CGI), который приобрел популярность примерно
в 1998 году. Сделать это можно, в общих чертах, следующим образом:
создайте сценарий на языке Python, который будет возвращать HTML, сохраните его на вебсервере с расширением .cgi и зайдите на эту страницу с помощью броузера. Вот и все.
Ниже приведен пример CGI-сценария на языке Python, который выводит названия десяти свежеизданных книг из базы данных. Не вдаваясь в детали синтаксиса сценария, попробуйте понять, как он работает2 :
#!/usr/bin/env python
777-888-999
"""import MySQLdb
777-888-999
print “Content-Type: text/html\n”
print “<html><head><title>Книги</title></head>”
print “<body>”
print “<h1>Книги</h1>”
print “<ul>”
777-888-999
connection = MySQLdb.connect(user=’me’, passwd=’letmein’, db=’my_db’)
cursor = connection.cursor()
cursor.execute(“SELECT name FROM books ORDER BY pub_date DESC LIMIT 10”)
777-888-999
for row in cursor.fetchall():
print “<li>%s</li>” % row[0]
777-888-999
print “</ul>” """
Если у вас есть достаточно продолжительный опыт создания веб-приложений, то вы наверняка знакомы с проблемами, присущими рассмотренному выше примеру CGI-сценария.
Классический веб-разработчик
проходит такой путь:
1. Пишет веб-приложение с нуля.
2. Пишет еще одно веб-приложение с нуля.
3. Осознает, что первое веб-приложение имеет много общего со вторым.
4. Перерабатывает код так, чтобы некоторые вещи из первого приложения можно было использовать повторно во втором.
5. Повторяет шаги 2–4 несколько раз.
6. Понимает, что он придумал фреймворк.
Именно так и был создан Django!
Классический веб-разработчик
проходит такой путь:
1. Пишет веб-приложение с нуля.
2. Пишет еще одно веб-приложение с нуля.
3. Осознает, что первое веб-приложение имеет много общего со вторым.
4. Перерабатывает код так, чтобы некоторые вещи из первого приложения можно было использовать повторно во втором.
5. Повторяет шаги 2–4 несколько раз.
6. Понимает, что он придумал фреймворк.
Именно так и был создан Django!
Данная книга не дает ответы на все вопросы по работе с PostgreSQL.
Главное её задание — показать возможности PostgreSQL, методики настройки и масштабируемости этой СУБД. В любом случае, выбор метода решения поставленной задачи остается за разработчиком или администратором СУБД.
Главное её задание — показать возможности PostgreSQL, методики настройки и масштабируемости этой СУБД. В любом случае, выбор метода решения поставленной задачи остается за разработчиком или администратором СУБД.
Доброго времени суток народ!😉
Сегодня расскажу вам о компании в которой я являюсь учредителем, и стартапе в котором я разработываю backend👍
В двух словах это IT-проект для городской среды. Это будет сервис, который выведет использование автотранспорта на новый уровень.
Подробнее мы публикуем в соц. сетях:
VK: https://vk.com/kronapp
Instagram: https://www.instagram.com/kron.app
Сегодня расскажу вам о компании в которой я являюсь учредителем, и стартапе в котором я разработываю backend👍
В двух словах это IT-проект для городской среды. Это будет сервис, который выведет использование автотранспорта на новый уровень.
Подробнее мы публикуем в соц. сетях:
VK: https://vk.com/kronapp
Instagram: https://www.instagram.com/kron.app
Forwarded from Библиотека питониста | Python, Django, Flask
Практическое руководство по веб-разработке на Flask
Данный туториал посвящен созданию реального сайта с нуля. Автор сделает клон PythonProgramming.net, который на самом деле написан на Flask.
Создание PythonProgramming.net включает в себя:
Как Flask помогает Python взаимодействовать с HTML
Использование Bootstrap для стилизации сайта
Шаблонизаторы
Пользовательские системы
Хеширование пароля
Базы данных
Content Management и т.д.
#youtubeдня
https://goo-gl.ru/4N7P
Данный туториал посвящен созданию реального сайта с нуля. Автор сделает клон PythonProgramming.net, который на самом деле написан на Flask.
Создание PythonProgramming.net включает в себя:
Как Flask помогает Python взаимодействовать с HTML
Использование Bootstrap для стилизации сайта
Шаблонизаторы
Пользовательские системы
Хеширование пароля
Базы данных
Content Management и т.д.
#youtubeдня
https://goo-gl.ru/4N7P
А тем временем пост от нашего подписчика👍
ГРАНДИОЗНО! Учебник по Питону для дизайнеров: pythonfordesigners.com
Итальянский дизайнер Роберто Алиста создал и вчера опубликовал талантливый и понятный учебник по Питону, нацеленный на умение работы с графикой. Я несколько раз пытался изучить Питон и всегда не удавалось достичь нормального результата. С этим мануалом всё становится понятнее — разложено по полочкам и нацелено на дизайнеров, чтобы даже самые последние гуманитарии освоили азы программирования.
Это руководство будет ценно дизайнерам, типографам, шрифтовикам и всем-всем, для создания генеративной графики, вёрстки и анимации в DrawBot. Есть даже глава в которой доходчиво рассказывается об основах шрифтового дизайна: pythonfordesigners.com/strings-encoding-and-unicode
Всем приятного изучения (дизайнерам сегодня необходимо уметь ;программировать)! А энтузиастам, которые наверняка появятся, желаю успешного перевода на русский, хотя там и так всё очень понятно.
ГРАНДИОЗНО! Учебник по Питону для дизайнеров: pythonfordesigners.com
Итальянский дизайнер Роберто Алиста создал и вчера опубликовал талантливый и понятный учебник по Питону, нацеленный на умение работы с графикой. Я несколько раз пытался изучить Питон и всегда не удавалось достичь нормального результата. С этим мануалом всё становится понятнее — разложено по полочкам и нацелено на дизайнеров, чтобы даже самые последние гуманитарии освоили азы программирования.
Это руководство будет ценно дизайнерам, типографам, шрифтовикам и всем-всем, для создания генеративной графики, вёрстки и анимации в DrawBot. Есть даже глава в которой доходчиво рассказывается об основах шрифтового дизайна: pythonfordesigners.com/strings-encoding-and-unicode
Всем приятного изучения (дизайнерам сегодня необходимо уметь ;программировать)! А энтузиастам, которые наверняка появятся, желаю успешного перевода на русский, хотя там и так всё очень понятно.
Forwarded from Библиотека питониста | Python, Django, Flask
Виртуальные среды ("virtualenvs") сохраняют зависимости в вашем проекте! Они помогают вам избежать конфликтов между пакетами и разными версиями Python.
Перед созданием и активацией virtualenv:
#codeexample
Перед созданием и активацией virtualenv:
python и pip отображаются в системе версия интерпретатора Python (например, Python 2.7)#codeexample
$ which python /usr/local/bin/python
$ python3 -m venv ./venv
$ ls ./venv bin include lib pyvenv.cfg #
$ source ./venv/bin/activate
(venv) $ echo "wee!"
(venv) $ which python /Users/dan/my-project/venv/bin/python3
(venv) $ pip install requests
(venv) $ deactivate
$ echo "yay!"
$ which python /usr/local/bin/pythonЕсли вы:
-хотите писать более читаемый и лаконичный код
-хотите умещать как можно больше смысла в одном выражении
-считаете, что лучше прочитать о нескольких тонких местах, вместо того, чтобы
провести остаток жизни за чтением мануалов
добро пожаловать на канал t.me/programming_python
-хотите писать более читаемый и лаконичный код
-хотите умещать как можно больше смысла в одном выражении
-считаете, что лучше прочитать о нескольких тонких местах, вместо того, чтобы
провести остаток жизни за чтением мануалов
добро пожаловать на канал t.me/programming_python
Telegram
AIO Programming | Python | SQL | HTML | CSS | Javascript | API
All in One Programming :
- News
- Ressources
- Tipps & Tricks
Programming | Python | SQL | HTML | CSS | Javascript | API | Windows | Linux | VSCode | Rust | Blockchain | Solidity | Java | Bootcamp | Bash | Shell | C++
Academy | Learning | Courses | 360
- News
- Ressources
- Tipps & Tricks
Programming | Python | SQL | HTML | CSS | Javascript | API | Windows | Linux | VSCode | Rust | Blockchain | Solidity | Java | Bootcamp | Bash | Shell | C++
Academy | Learning | Courses | 360
Эта книга заложит основу и укрепит ваши навыки программирования
на Python с использованием техник практики и запоминания, позволяя по
степенно продвигаться к решению все более сложных задач. К концу книги
вы приобретете знания, необходимые для изучения более сложных тем про
граммирования. Я бы сказал, что моя книга дает вам «черный пояс програм
миста». Это значит, что прочитав ее, вы приобретете навыки, достаточные для
начала программирования.
Если вы будете усердно, не торопясь, работать, то выучите Python.
на Python с использованием техник практики и запоминания, позволяя по
степенно продвигаться к решению все более сложных задач. К концу книги
вы приобретете знания, необходимые для изучения более сложных тем про
граммирования. Я бы сказал, что моя книга дает вам «черный пояс програм
миста». Это значит, что прочитав ее, вы приобретете навыки, достаточные для
начала программирования.
Если вы будете усердно, не торопясь, работать, то выучите Python.
А тем временем расскажу о канале своего партнера -Дизайнер и программист ведут канал о работе в веб-студии, делятся историями и бомбёжкой о клиентах и исполнителях.
https://t.me/itlol
https://t.me/itlol
Telegram
Провинциальная вебстудия
Из говна и палок.
Forwarded from Библиотека питониста | Python, Django, Flask
Обработка изображений на Python
Курс начального уровня учит обработке изображений с помощью языка программирования Python. В курсе рассматриваются: устройство цифровых изображений, коррекция яркости и цвета изображения, фильтрация изображений, частотный анализ и устройство формата JPEG
#youtubeдня
http://clc.am/v-HXgg
Курс начального уровня учит обработке изображений с помощью языка программирования Python. В курсе рассматриваются: устройство цифровых изображений, коррекция яркости и цвета изображения, фильтрация изображений, частотный анализ и устройство формата JPEG
#youtubeдня
http://clc.am/v-HXgg
При программировании на Python мы можем столкнуться с двумя типами ошибок. Первый тип представляют синтаксические ошибки (syntax error). Они появляются в результате нарушения синтаксиса языка программирования при написании исходного кода. При наличии таких ошибок программа не может быть скомпилирована. При работе в какой-либо среде разработки, например, в PyCharm, IDE сама может отслеживать синтаксические ошибки и каким-либо образом их выделять.
Второй тип ошибок представляют ошибки выполнения (runtime error). Они появляются в уже скомпилированной программе в процессе ее выполнения. Подобные ошибки еще называются исключениями. Например, в прошлых темах мы рассматривали преобразование числа в строку:
string = "5"
number = int(string)
print(number)
Данный скрипт успешно скомпилируется и выполнится, так как строка "5" вполне может быть конвертирована в число. Однако возьмем другой пример:
string = "hello"
number = int(string)
print(number)
При выполнении этого скрипта будет выброшено исключение ValueError, так как строку "hello" нельзя преобразовать в число. С одной стороны, здесь очевидно, сто строка не представляет число, но мы можем иметь дело с вводом пользователя, который также может ввести не совсем то, что мы ожидаем:
string = input("Введите число: ")
number = int(string)
print(number)
При возникновении исключения работа программы прерывается, и чтобы избежать подобного поведения и обрабатывать исключения в Python есть конструкция try..except, которая имеет следующее формальное определение:
try:
инструкции
except [Тип_исключения]:
инструкции
Весь основной код, в котором потенциально может возникнуть исключение, помещается после ключевого слова try. Если в этом коде генерируется исключение, то работа кода в блоке try прерывается, и выполнение переходит в блок except.
После ключевого слова except опционально можно указать, какое исключение будет обрабатываться (например, ValueError или KeyError). После слова except на следующей стоке идут инструкции блока except, выполняемые при возникновении исключения.
Рассмотрим обработку исключения на примере преобразовании строки в число:
try:
number = int(input("Введите число: "))
print("Введенное число:", number)
except:
print("Преобразование прошло неудачно")
print("Завершение программы")
Вводим строку:
Введите число: hello
Преобразование прошло неудачно
Завершение программы
Как видно из консольного вывода, при вводе строки вывод числа на консоль не происходит, а выполнение программы переходит к блоку except.
Вводим правильное число:
Введите число: 22
Введенное число: 22
Завершение программы
Теперь все выполняется нормально, исключение не возникает, и соответственно блок except не выполняется.
В примере выше обрабатывались сразу все исключения, которые могут возникнуть в коде. Однако мы можем конкретизировать тип обрабатываемого исключения, указав его после слова except:
try:
number = int(input("Введите число: "))
print("Введенное число:", number)
except ValueError:
print("Преобразование прошло неудачно")
print("Завершение программы")
Если ситуация такова, что в программе могут быть сгенерированы различные типы исключений, то мы можем их обработать по отдельности, используя дополнительные выражения except:
try:
number1 = int(input("Введите первое число: "))
number2 = int(input("Введите второе число: "))
print("Результат деления:", number1/number2)
except ValueError:
print("Преобразование прошло неудачно")
except ZeroDivisionError:
print("Попытка деления числа на ноль")
except Exception:
print("Общее исключение")
print("Завершение программы")
Если возникнет исключение в результате преобразования строки в число, то оно будет обработано блоком except ValueError. Если же второе число будет равно нулю, то есть будет деление на ноль, тогда возникнет исключение ZeroDivisionError, и оно будет обработано блоком except ZeroDivisionError.
Тип Exception представляет общее исключение, под которое попадают все исключительные ситуации.
Второй тип ошибок представляют ошибки выполнения (runtime error). Они появляются в уже скомпилированной программе в процессе ее выполнения. Подобные ошибки еще называются исключениями. Например, в прошлых темах мы рассматривали преобразование числа в строку:
string = "5"
number = int(string)
print(number)
Данный скрипт успешно скомпилируется и выполнится, так как строка "5" вполне может быть конвертирована в число. Однако возьмем другой пример:
string = "hello"
number = int(string)
print(number)
При выполнении этого скрипта будет выброшено исключение ValueError, так как строку "hello" нельзя преобразовать в число. С одной стороны, здесь очевидно, сто строка не представляет число, но мы можем иметь дело с вводом пользователя, который также может ввести не совсем то, что мы ожидаем:
string = input("Введите число: ")
number = int(string)
print(number)
При возникновении исключения работа программы прерывается, и чтобы избежать подобного поведения и обрабатывать исключения в Python есть конструкция try..except, которая имеет следующее формальное определение:
try:
инструкции
except [Тип_исключения]:
инструкции
Весь основной код, в котором потенциально может возникнуть исключение, помещается после ключевого слова try. Если в этом коде генерируется исключение, то работа кода в блоке try прерывается, и выполнение переходит в блок except.
После ключевого слова except опционально можно указать, какое исключение будет обрабатываться (например, ValueError или KeyError). После слова except на следующей стоке идут инструкции блока except, выполняемые при возникновении исключения.
Рассмотрим обработку исключения на примере преобразовании строки в число:
try:
number = int(input("Введите число: "))
print("Введенное число:", number)
except:
print("Преобразование прошло неудачно")
print("Завершение программы")
Вводим строку:
Введите число: hello
Преобразование прошло неудачно
Завершение программы
Как видно из консольного вывода, при вводе строки вывод числа на консоль не происходит, а выполнение программы переходит к блоку except.
Вводим правильное число:
Введите число: 22
Введенное число: 22
Завершение программы
Теперь все выполняется нормально, исключение не возникает, и соответственно блок except не выполняется.
В примере выше обрабатывались сразу все исключения, которые могут возникнуть в коде. Однако мы можем конкретизировать тип обрабатываемого исключения, указав его после слова except:
try:
number = int(input("Введите число: "))
print("Введенное число:", number)
except ValueError:
print("Преобразование прошло неудачно")
print("Завершение программы")
Если ситуация такова, что в программе могут быть сгенерированы различные типы исключений, то мы можем их обработать по отдельности, используя дополнительные выражения except:
try:
number1 = int(input("Введите первое число: "))
number2 = int(input("Введите второе число: "))
print("Результат деления:", number1/number2)
except ValueError:
print("Преобразование прошло неудачно")
except ZeroDivisionError:
print("Попытка деления числа на ноль")
except Exception:
print("Общее исключение")
print("Завершение программы")
Если возникнет исключение в результате преобразования строки в число, то оно будет обработано блоком except ValueError. Если же второе число будет равно нулю, то есть будет деление на ноль, тогда возникнет исключение ZeroDivisionError, и оно будет обработано блоком except ZeroDivisionError.
Тип Exception представляет общее исключение, под которое попадают все исключительные ситуации.