Копирка для программирования на Python
Copyright © 2018 Packt Publishing
|
Данный документ предоставляется по лицензии Creative Commons Attribution 3.0 License, за исключением разделов со специальными оговорками. |
Первая публикация на английском языке: Февраль 2018
Ссылка на продукт: 1260218
Все права защищены. Никакая часть этой книги не может быть воспроизведена, сохранена в поисковой системе или передана в любой форме или любыми средствами без предварительного письменного разрешения издателя, за исключением случаев кратких цитат, встроенных в критические статьи и обзоры.
При подготовке этой книги были предприняты все усилия чтобы гарантировать точность представленной информации. Тем не менее, информация, содержащаяся в этой книге, продаётся без гарантии в явном или неявном виде. Ни авторы, ни Packt Publishing, ни их дилеры и дистрибьюторы не будут нести ответственность за любые убытки, вызванные или предположительно вызванные прямо или косвенно этой книгой.
Packt Publishing пыталась предоставить информацию о товарных знаках обо всех компаниях и продуктов, упомянутых в данной книге для надлежащего использования капиталов. Тем не менее, Packt Publishing не может гарантировать точность этой информации.
Опубликовано Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK
ISBN 978-1-78646-816-1
2018-07-22
- Авторы
- Даниель Фуртейдо
- Маркус Пеннингтон
- Редактор выпуска
- Меринт Мэтью
- Редактор
- Сандип Мишра
- Редактор разработки содержания
- Лоуренс Вейгас
- Технический редактор
- Мехул Сингх
- Литературный редактор
- Safis Editing
- Координатор проекта
- Праджакта Нейк
- Корректор
- Safis Editing
- Составитель указателя
- Рекха Нейр
- Графика
- Джиша Чирейил
- Координатор производства
- Арвиндкумар Гупта
Даниель Фуртейдо
Маркус Пеннингтон
- Предисловие
- Глава 1. Реализация приложения прогноза погоды
- Глава 2. Создание приложения удалённого управления при помощи Spotify
- Глава 3. Оценка голосов в Twitter
- Глава 4. Курсы обмена и инструменты преобразования валют
- Глава 5. Построение веб рассылки с микрослужбами
- Цели TempMessenger
- Требования
- Что такое Nameko?
- Создание вашей первой службы Nameko
- Поблочное тестирование микрослужбы Nameko
- Выставление точек входа HTTP
- Интегрированная проверка микрослужб Nameko
- Запоминание сообщений
- Поставщики зависимостей Nameko
- Накопление сообщений
- Выборка всех сообщений
- Отображение сообщений в веб браузере
- Отправка сообщений через запросы POST
- Срок действия сообщений в Redis
- Сортировка сообщений
- Опрос браузера для сообщений
- Выводы
- Глава 6. Развитие TempMessenger при помощи микрослужбы аутентификации пользователя
- Глава 7. Магазин видеоигр реального времени в Django
- Установка среды разработки
- Создание нового проекта Django
- Изучение структуры проекта Django
- Создание основного прикладного приложения проекта
- Установка зависимостей стороны клиента
- Добавление обзоров регистрации и выхода из системы
- Создание новых пользователей
- Создание модели данных игры
- Создание модели карты покупки
- Выводы
- Глава 8. Микрослужба заказа
- Настройка среды
- Создание моделей служб
- Создание диспетчеров моделей
- Изучение проверок
- Создание файлов проверок
- Проверка функции прекращения заказа
- Проверка функции получения всех заказов
- Получение невыполненных заказов пользователей
- Получение завершённых заказов пользователей
- Получение заказов по состоянию
- Получение заказов по продолжительности
- Установка следующего состояния заказа
- Установка состояния заказа
- Создание упорядочивателя модели заказа
- Создание обзоров
- Установка URL службы
- Интеграция с магазином игр в реальном времени
- Развёртывание в AWS
- Выводы
- Глава 9. Приложение уведомления без сервера
- Указатель
Если вы были причастны к индустрии разработки программного обеспечения в последние 20 лет, вы наверняка слышали о языке программирования под названием Python. Созданный Гвидо ван Россумом, Pyhton впервые появился в 1991 и завоевал сердца многих разработчиков программного обеспечения по всему миру с тех пор.
Однако, как так получается, что язык, которому более 20 лет, всё ещё присутствует и становится вс более популярным день ото дня?.
Ну, ответ на этот вопрос простой. Python потрясающе подходит ко всему (или почти ко всему). Python является языком программирования общего назначения, что означает что вы можете создавать простые терминальные приложения, веб приложения, микрослужбы, игры, а также сложные научные приложения. Несмотря на то, что Python можно применять для различных целей, Python является языком, который знаменит тем, что его просто изучить, что идеально подходит как новичкам, так и людям, не имеющим опыта в области компьютеров.
Python является полностью укомплектованным языком программирования, что означает, что в большинстве случаев вам не будет требоваться применять никакие внешине зависимости при разработке своих проектов. Стандартная библиотека Python обладает богатой функциональностью и в большистве случаев содержит всё что вам необходимо для создания своих программ, а если в исключительном случае вам требуется что- то, чего нет в стандартной библиотеке, PyPI (Python Package Index) в настоящее время содержит 117 652 пакета.
Сообщество Python дружелюбно, любезно, разнообразно и чрезвычайно страстно заботится о языке, и всякий участник сообщества всегда счастлив оказывать взаимопомощь.
Если вы всё ещё не убеждены, популярный веб-сайт StackOverflow опубликовал статистику текущего года о популярности языков программирования на основе количества вопросов, которые пользователи добавляют на сайт, причём Python - один из самых популярных языков, сразу вслед за JavaScript, Java, C# и PHP.
Сейчас самое подходящее время стать разработчиком Python, поэтому давайте приступим!
Эта книга предназначена для разработчиков программного обеспечения, которые знакомы с Python и хотят получить опыт работы с веб-проектами и разработками программного обеспечения. Требуются базовые знания программирования Python.
Глава 1. Реализация приложения прогноза погоды предоставит вам руководство по разработке терминального приложения, которое будет отображать текущее состояние погоды для определённого региона, а также прогноз на следующие 5 дней. Данная глава ознакомит вас с основными понятиями программирования Python. Вы изучите как выполнять разбор аргументов командной строки и добавлять дополнительную интерактивность в программы, а также вы в конечном итоге увидите как выскребать (scrape) данные из вебсайтов при помощи популярной оснастки Beautiful Soup.
Глава 2. Создание приложения удалённого управления при помощи Spotify расскажет о том как вы можете осуществлять аутентификацию с помощью Spotify API применяя OAuth. Мы воспользуемся библиотекой curses чтобы сделать своё приложение более интерсным и дружественным пользователю.
Глава 3. Оценка голосов в Twitter Расскажет вам как применять библиотеку Tkinter для создания великолепного пользовательского интерфейса с применением Python. Мы воспользуемся Reactive Extensions для Python чтобы определять когда выполнено некое голосование в нашем сервере, после чего мы опубликуем полученные изменения в своём интерфейсе пользователя.
Глава 4. Курсы обмена и инструменты преобразования валют позволит вам реализовать преобразователь валют, который будет получать соотношения иностранных обменных курсов в реальном масштабе времени из различных источников и применять полученные данные для осуществления необходимой конвертации. Мы разработаем некий API, который содержит вспомогательные функции для выполнения таких преобразований. Вначале мы воспользуемся API преобразования зарубежных обменных курсов и преобразования валют с открытым исходным кодом (http://fixer.io/).
Вторая часть этой главы обучит тому как создавать приложение командной строки, которое использует наш API для опросы данных из имеющихся источников данных, также получает преобразование валют с несколькими параметрами.
Глава 5. Построение веб рассылки с микрослужбами обучит вас тому как использовать Nameko, конструктив микрослужб для Python. Мы также изучим как выполнять зависимости поставщиков для внешних ресурсов, таких как Redis. Данная глава также затронет проверку интеграции служб Nameko и основы запросов AJAX для API.
Глава 6. Развитие TempMessenger при помощи микрослужбы аутентификации пользователя будет построена на основе вашего прикладного приложения из Глава 5. Построение веб рассылки с микрослужбами. Вы изучите как создавать некую микрослужбу аутентификации пользователя, которая будет сохранять пользователей в базе данных Postgres. Применяя Bcrypt вы также изучите как безопасно сохранять пароли в какой- то базе данных. Эта глава также обсудит создание веб интерфейса Flask и того, как применять куки для сохранения данных веб сеанса. К концу этих глав вы получите полную экипировку для создания масштабируемых и связных микрослужб.
Глава 7. Магазин видеоигр реального времени в Django позволит вам создать магазин видеоигр в реальном вермени. Он будет содержать такие свойства, как просмотр видеоигр по категориям, осуществление поиска с применением различных критериев, просмотр подробной информации о каждой игре и, наконец, добавление игр в карту покупок и размещение заказа. Здесь вы познакомитесь с Django 2.0, его UI администрирования, моделью данных Django и со многим другим.
Глава 8. Микрослужба заказа поможет вам с построением микрослужбы, которая будет отвечать получение заказов от вашего веб приложения, которое было разработано в нашей предыдущей главе. Микрослужба заказа также предоставит дополнительные свойства, такие как возможность обновления состояния заказов и предоставление информации о заказе с помощью различных критериев.
Глава 9. Приложение уведомления без сервера обучит вас решениям функциональности без сервера и тму как строить службу уведомлений при помощи Flask и развёртывать окончательное приложение в Lambda AWS при помощи великолепного проекта Zappa. Вы также изучите как интегрировать свои веб приложения, которые были разработаны в Глава 7. Магазин видеоигр реального времени в Django и разработанную в Глава 8. Микрослужба заказа микрослужбу заказа с безсерверным приложением уведомлений.
Чтобы выполнять предоставленные в данной книге коды на своей локальной машине вам понадобится следующее:
-
Подключение к Интернету
-
Virtualenv
-
Python 3.6
-
MongoDB 3.2.11
-
pgAdmin (для инструкции по установке ознакомьтесь с официальной документацией)
-
Docker (для инструкции по установке ознакомьтесь с официальной документацией)
Все прочие требования будут постулироваться по мере нашего продвижения по главам книги. Все инструкции из это главы были осуществлены в системах macOS или Debian/Ubuntu; хотя авторы предприняли все меры по соблюдению межплатформенной независимости.
Вы можете выгрузить все файлы примеров кода для данной книги из своей учётной записи www.packtpub.com. Если вы приобрели эту книгу в ином месте, будьте добры, пройдите в www.packtpub.com/support и зарегистрируйтесь чтобы иметь эти файлы высланные непосредственно вам по электронной почте.
Вы можете выгрузить все файлы кодов пройдя следующие шаги:
-
Зайдите зарегистрированным пользователем на www.packtpub.com.
-
Выберите закладку SUPPORT.
-
Кликните по Code Downloads & Errata.
-
Введите название нужной вам книги в блоке Search и следуйте появляющимся на экране инструкциям.
После того, как необходимые файлы выгружены, убедитесь что вы раззиповали или раскрыли их в нужную папку при помощи самой последней версии:
-
WinRAR/7-Zip
для Windows. -
Zipeg/iZip/UnRarX
для Mac. -
7-Zip/PeaZip
для Linux.
Пакет кода также размещён на GitHub по адресу https://github.com/PacktPublishing/Python-Programming-Blueprints. Также у нас имеются и другие пакеты кода из нашего богатого каталога книг и видео, доступные по адресу https://github.com/PacktPublishing/. Следите за изменениями!
В данной книге вы найдёте ряд текстовых стилей, которые делают разницу между различными видами информации. Здесь мы приводим некоторые примеры этих стилей и объяснение их назначения.
CodeInText
указывает кодовые слова в тексте, имена таблиц базы данных, имена папок, имена файлов,
расширения файлов, имена путей, модели URL-адресов, ввод пользователя, и регулировки Twitter. Вот некий пример:
"Этот метод выполнит вызов метода exec
из Runner
для исполнения
той функции, которая выполнит необходимые запросы в соответствующем Twitter API".
Блок кода устанавливается следующим образом:
def set_header(self):
title = Label(self,
text='Voting for hasthags',
font=("Helvetica", 24),
height=4)
title.pack()
Если вы желаете привлечь внимание к определённой части блока кода,соответствующие строки или элементы выделяются жирным:
def start_app(args):
root = Tk()
app = Application(hashtags=args.hashtags, master=root)
app.master.title("Twitter votes")
app.master.geometry("400x700+100+100")
app.mainloop()
Любой ввод командной строки или её вывод записываются следующим образом:
python app.py --hashtags debian ubuntu arch
Жирно: указывает новый термин, важное слово которые вы видите на экране, например, в меню или блоках диалогов появляются именно так. Вот пример: "Он сообщает Logged as с именем вашего пользователя, причём сразу после него имеется ссылка на выход из системы. Примените её для перемещения и кликните по этой ссылке Log off.".
Замечание | |
---|---|
Предостережения или важные замечания появляются в блоках подобных этому. |
Совет | |
---|---|
Советы и ловкие приёмы возникают таким образом. |
Обращения наших читателей всегда приветствуются.
Обычная обратная связь: Пошлите электронное письмо на адрес feedback@packtpub.com с упоминанием заголовка книги в теме вашего сообщения. Если у вас имеются вопросы относительно любых сторон данной книги, обратитесь, пожалуйста, по адресу questions@packtpub.com.
Ошибки: Хотя мы и предприняли все меры чтобы гарантировать точность содержимого, ошибки могут иметь место. Если вы обнаружили ошибку в данной книге, мы будем вам признательны если вы сообщите нам о ней. Посетите, пожалуйста, www.packtpub.com/submit-errata, выбрав вашу книгу, кликнув на ссылку Errata Submission Form, и заполнив подробности найденной вами ошибки.
Пиратство: Если вы столкнётесь с какой-либо незаконной копией наших работ в любой форме в Интернете, пожалуйста, предоставьте нам сразу адрес местонахождения или имя веб-сайта, чтобы мы могли принять меры. Пожалуйста, обратитесь по адресу copyright@packtpub.com со ссылкой на материалы содержащие признаки нарушения авторских прав. {Прим. пер.: Согласно закону об авторском праве РФ, авторские права на перевод принадлежат авторам этого перевода. Данным переводом, по нашему мнению, мы служим популяризации основных стратегических направлений развития тем Packt. В случае наличия конструктивных предложений, готовы к тесному сотрудничеству.}.
Если вы желаете стать нашим автором: Если у вас существует тема, в которой у вас имеется опыт и вы заинтересованы либо в написании, либо во вкладе в книгу, обратитесь к руководству по адресу authors.packtpub.com.
Оставляйте, пожалуйста, отзывы. Если вы прочли и воспользовались данной книгой, почему бы вам не оставить отзыв на том сайте, на котором вы её приобрели? Потенциальные читатели затем смогут увидеть и применить ваше беспристрастное суждение чтобы принять решение о приобретении, мы в Packt сможем понять что вы думаете о нашем продукте, а наши авторы увидят обратную связь относительно своей книги. Мы заранее благодарим вас!
Для получения дополнительной информации о Packt посетите, пожалуйста packtpub.com.