Understanding the Project Details
00:00 Project Details. In this course, you’ll build an application that checks if one or more websites are online at a given moment. The app will take a list of target URLs at the command line and check them for connectivity, either synchronously or asynchronously. On-screen, you can see the application in action.
00:22 The site connectivity checker can take one or more URLs at the command line. It then creates an internal list of targets and checks them for connectivity by issuing HTTP requests and processing the corresponding responses.
00:37 Your website connectivity checker app will provide a few options through a minimal command-line interface, otherwise known as its CLI. Here’s a summary of these options.
00:47
-u
or --urls
allows you to provide one or more target URLs at the command line. -f
or --input-file
allows you to supply a file containing a list of URLs to check.
00:59
-a
or --asynchronous
allows you to run the connectivity checks asynchronously.
01:06 By default, the application will run the connectivity checks synchronously. In other words, the app will perform the checks one after another.
01:17
With the -a
or --asynchronous
option, you can modify this behavior and make the app run the connectivity checks concurrently. To do this, you’ll take advantage of Python’s asynchronous features and the aiohttp
third-party library.
01:33
This mode can make your website connectivity checker faster and more efficient, especially when you have a long list of URLs to check internally. Your application will use the standard library http.client
module to create a connection to the target website.
01:49 Once you have a connection, then you can make an HTTP request to the website, which will hopefully react with an appropriate response. If the request is successful, then you’ll know that the site is online.
02:01 Otherwise, you’ll know that the site is offline.
02:06 To display the result of every connectivity check on your screen, you’ll provide your app with a nicely formatted output that will make the app appealing to users.
02:16
The project that you’ll build in this course will require familiarity with general Python programming. Additionally, basic knowledge of the following topics will be helpful in your understanding of what’s happening in the code that you’ll see: handling exceptions in Python, working with files, the with
statement and the pathlib
module, handling HTTP requests with standard-library or third-party tools, creating CLI applications with the argparse
module, and using Python’s asynchronous features.
02:48
Knowing the basics of the aiohttp
third-party library would also be a plus, but is not a requirement. However, if you don’t have all this knowledge yet, then that’s okay.
02:58 You might learn more by going ahead and giving the project a go. You can always download the completed code as part of the project materials to use as a comparison if you do have a problem that you can’t solve. With this short overview of your website connectivity checker project and the prerequisites, you are almost ready to start Python and having fun while coding, but first you need to create a suitable working environment and set up your project’s layout.
03:24 And that’s what you’ll be covering in the next part of the course.
Become a Member to join the conversation.