The Web Server Gateway Interface
This lesson is the second lesson in two-part series on how to build an application in Python. In the first lesson, we built a data ingestion process that extracted named entities from articles across a few different publications. We extracted named entities from around 100,000 articles and we saved the results into Cloud Firestore. In this second lesson, we'll explore the codebase for a web application used to visualize those results.
We'll kick off the lesson by checking out some quality of life changes implemented while developing this app. That includes a custom bash theme, a replacement debugger, a debugger command for starting an IPython shell, and pytest plugins. After that, we're going to review the data access layer and its accompanying tests. That's going to include multiple implementations of each data access service. Then we'll check out Python's web application standard.
Next, we'll review the web application layer and its accompanying tests. That's going to include a fast web application framework, custom middleware, request hooks, and application configuration. After that, we're going to review the presentation layer, including a Vue.js app and materialize CSS. Finally, we're going to run the app locally and trace some requests through the application using the debugger.
If you have any feedback relating to this lesson, feel free to contact us at support@cloudacademy.com≥
Learning Objectives
- Implement a few developer quality of life changes
- Implement a testable data access layer
- Understand how a Python web app operates
- Understand how to build and test a more complex web app
- Understand how to use ipdb and IPython
- Enhance your knowledge of the Python programming language
Intended Audience
This lesson is intended for software developers or anyone who wants to learn more about building apps with Python.
Prerequisites
- Before taking this lesson, please make sure you have taken the first lesson in this two-part series: Building a Python Application: Lesson One
- You should also have an understanding of Python 3, Linux CLI, HTML/JS, and Git
Resources
The source code for the lesson is available on GitHub.