How to build useful, real-world applications in the Python programming language Key Features Deliver scalable and high-performing applications in Python. Delve into the great ecosystem of Python frameworks and libraries through projects that you will build with this book. This comprehensive guide will help you demonstrate the power of Python by building practical projects. Book Description Python is a very powerful, high-level, object-oriented programming language. It's known for its simplicity and huge community support. Python Programming Blueprints will help you build useful, real-world applications using Python. In this book, we will cover some of the most common tasks that Python developers face on a daily basis, including performance optimization and making web applications more secure. We will familiarize ourselves with the associated software stack and master asynchronous features in Python. We will build a weather application using command-line parsing. We will then move on to create a Spotify remote control where we'll use OAuth and the Spotify Web API. The next project will cover reactive extensions by teaching you how to cast votes on Twitter the Python way. We will also focus on web development by using the famous Django framework to create an online game store. We will then create a web-based messenger using the new Nameko microservice framework. We will cover topics like authenticating users and, storing messages in Redis. By the end of the book, you will have gained hands-on experience in coding with Python. What you will learn Learn object-oriented and functional programming concepts while developing projects The dos and don'ts of storing passwords in a database Develop a fully functional website using the popular Django framework Use the Beautiful Soup library to perform web scrapping Get started with cloud computing by building microservice and serverless applications in AWS Develop scalable and cohesive microservices using the Nameko framework Create service dependencies for Redis and PostgreSQL Who this book is for This book is for software developers who are familiar with Python and want to gain hands-on experience with web and software development projects. A basic knowledge of Python programming is required.
Author(s): Daniel Furtado; Marcus Pennington
Publisher: Packt Publishing
Year: 2018
Language: English
Pages: 456
Cover
Title Page
Copyright and Credits
Dedication
Contributors
Packt Upsell
Table of Contents
Preface
Chapter 1: Implementing the Weather Application
Setting up the environment
Core functionality
Loading parsers dynamically
Creating the application's model
Fetching data from the weather website
Getting the user's input with ArgumentParser
Creating the parser
Getting today's weather forecast
Adding helper methods
Implementing today's weather forecast
Getting five- and ten-day weather forecasts
Getting the weekend weather forecast
Summary
Chapter 2: Creating a Remote-Control Application with Spotify
Setting up the environment
Creating a Spotify app
The application's configuration
Creating a configuration file
Implementing a configuration file reader
Authenticating with Spotify's web API
Implementing the client credentials flow
Implementing the authorization code flow
Authorizing our application with authorization code flow
Querying Spotify's web API
Creating the player
Adding menus for albums and track selection
Implementing the menu panel
Creating the DataManager class
Time to listen to music!
Summary
Chapter 3: Casting Votes on Twitter
Setting up the environment
Creating a Twitter application
Adding the configuration file
Performing authentication
Creating the Flask application
Creating the application routes
Building the Twitter voting application
Enhancing our code
Summary
Chapter 4: Exchange Rates and the Currency Conversion Tool
Setting up the environment
Creating the API wrapper
Adding the database helper class
Creating the command line parser
Creating the currency enumeration
Creating the command line parser
Basic validation
Adding the application's entry point
Testing our application
Summary
Chapter 5: Building a Web Messenger with Microservices
TempMessenger Goals
Requirements
What is Nameko?
RPCs
How Nameko uses AMQP
RabbitMQ
Starting a RabbitMQ container
Installing Python requirements
Creating your first Nameko microservice
Making a call to our service
Unit-testing a Nameko microservice
Exposing HTTP entrypoints
Integration testing Nameko microservices
Storing messages
An introduction to Redis
Starting a Redis container
Installing the Python Redis client
Using Redis
Nameko Dependency Providers
Adding a Redis Dependency Provider
Designing the Client
Creating the Dependency Provider
Creating our Message Service
Putting it all together
Saving messages
Adding a save message method to our Redis client
Adding a save message RPC
Retrieving all messages
Adding a get all messages method to our Redis client
Adding a get all messages RPC
Putting it all together
Displaying messages in the web browser
Adding a Jinja2 Dependency Provider
Creating the template renderer
Creating our homepage template
Creating the Dependency Provider
Making a HTML response
Putting it all together
Sending messages via POST requests
Adding a send messages POST request
Adding an AJAX POST request in jQuery
Expiring messages in Redis
Sorting messages
Browser polling for messages
Polling with JavaScript
Summary
Chapter 6: Extending TempMessenger with a User Authentication Microservice
TempMessenger goals
Requirements
Creating a Postgres dependency
Starting a Postgres Docker container
Creating the user model
Creating the user dependency
Creating users
Creating the User Service
Securely storing passwords in the database
Using Bcrypt
Hashing our user passwords
Handling duplicate users
Authenticating users
Retrieving users from the database
Authenticating a user's password
Splitting out the services
Creating a Flask server
Web sessions
Creating a sign-up page
Logging users out
Logging users in
Prepending the email to our messages
Summary
Chapter 7: Online Video Game Store with Django
Setting up the development environment
Installing Node.js
Creating a new Django project
Exploring the Django project's structure
Diving into the SQLite
Looking at the project's package directory
Creating the project's main app
Installing client-side dependencies
Adding login and logout views
Testing the login/logout forms
Creating new users
Creating the views of the user creation
Creating the game data model
Creating the price list data model
Creating the game list and details page
Adding list games views
Creating the shopping cart model
Creating the shopping cart form
Creating the shopping cart view
Adding items to the cart
Summary
Chapter 8: Order Microservice
Setting up the environment
Creating the service models
Creating the model's managers
Learning to test
Creating the test files
Testing the cancel order function
Testing the get all orders function
Getting customer's incomplete orders
Getting customer's completed orders
Getting orders by status
Getting orders by period
Setting the order's next status
Setting the order's status
Creating the order model serializer
Creating the views
Adding views
Setting up the service URLs
Integration with the game online store
Testing the integration
Deploying to AWS
Modifying the settings.py file
Deploying the order service
Summary
Chapter 9: Notification Serverless Application
Setting up the environment
Setting up the Amazon Web Services CLI
Configuring a Simple Email Service
Registering the emails
Creating an S3 bucket
Implementing the notification service
Email templates
Deploying the application with Zappa
Restricting access to the API's endpoints
Modifying the order service
Testing all the pieces together
Summary
Other Books You May Enjoy
Index