[Python Tips] Requests

in #development3 years ago

Requests is a powerful and easy to use HTTP library for Python

Need to get HTML data? Need to interact with an API? Requests can do that.

While Python has a built-in library urllib3 for these situations, requests wraps this library with an easy to use interface.


To install requests, you can use pip to install it.

pip install -U requests

The -U is a good practice to force an upgrade if it is already installed.

I recommend using a virtual environment. You can learn more about them in my previous tutorial on Virtual Environments.


While requests has a lot of functionality, I am going to cover the basic usage and you can refer to the documentation for the more advanced usage.

Basic Query

import requests
req = requests.get('https://pokeapi.co/api/v2/pokemon/ditto/`)

Status Codes

You can verify you have a proper response by checking the status code.


200 means everything went well, you can look up other codes here.

You can also use this technique to verify a good status code.

if req.status_code == requests.codes.ok:

There is a cleaner way to send a request and check the status code:

import requests
req = req = requests.get('https://pokeapi.co/api/v2/pokemon/ditto/`)

except requests.exceptions.HTTPError as e: 
    print e


You can retrieve the response data using req.text, req.json() as bytes with req.content, or raw with req.raw.

Most of the time you will be using req.json() and will be able to use the result as normal json data.

Requests can be used to POST, pass parameters, work with custom headers, and work with form data. If you want to learn other uses of the requests library, check out their documentation.

Requests is a simple by powerful python module that will handle 98% of your HTTP needs.

My Python Tips Series


Requests are so absoloutely huge, if you're trying to get your project to speak with a database. I've got one of my projects that links with the running app, Strava.

Great recommendation.


I enjoy reading your Python-Tips posts. I did notice you did not post in your STEMGeeks community, are you waiting for the communities beta to mature?

Shameless plug, I created a Learning Python community and would appreciate your thoughts.

 3 years ago 

I usually do. Just forgot the tag.


Good tips.. nice sharing keep it up...