Book Image

Python Programming Blueprints

By : Daniel Furtado, Marcus Pennington
Book Image

Python Programming Blueprints

By: Daniel Furtado, Marcus Pennington

Overview of this book

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.
Table of Contents (17 chapters)
Title Page
Copyright and Credits
Dedication
Contributors
Packt Upsell
Preface
Index

Adding the database helper class


Now that we have implemented the function that will fetch the exchange rate information from fixer.io, we need to add the class that will retrieve and save the information we fetched into our MongoDB.

So, let's go ahead and create a file called db.py inside the currency_converter/currency_converter/core directory; let's add some import statements:

  from pymongo import MongoClient

The only thing we need to import is the MongoClient. The MongoClient will be responsible for opening a connection with our database instance.

Now, we need to add the DbClient class. The idea of this class is to serve as a wrapper around the pymongo package functions and provide a simpler set of functions, abstracting some of the repetitive boilerplate code when working with pymongo:

class DbClient:

    def __init__(self, db_name, default_collection):
        self._db_name = db_name
        self._default_collection = default_collection
        self._db = None

a class called DbClient and...