django-requests-api 
Demo
- Heroku demo (if still online)
- Example branch on DLRSP/example
Requirements
- Python 3.9+
- Django 4.2+ (see package classifiers for the full matrix)
Install
pip install django-requests-api
INSTALLED_APPS = (
# ...
"requests_api",
# ...
)
Usage
from requests_api import RequestsApi
client = RequestsApi("https://api.publicapis.org")
r = client.get("/entries")
print(r.json())
github = RequestsApi(
"https://api.github.com",
headers={"Authorization": "token abcdef"},
)
r = github.get("/user", headers={"Accept": "application/json"})
print(r.text)
Paths are joined to base_url with a single slash. Absolute URLs (http:// / https://) are passed through unchanged. The package depends on requests (install_requires).
Helpers
Implementation: requests_api.requests_api and requests_api.helpers; public imports from the package root:
from requests_api import (
copy_get_params_with_overrides,
normalize_api_language,
requests_api_for_base,
)
lang = normalize_api_language(
request.LANGUAGE_CODE,
allowed=("it", "en"),
fallback="en",
)
params = copy_get_params_with_overrides(request, lang=lang)
client = requests_api_for_base("https://www.example.com")
r = client.get("api/resource", params=params, timeout=30)
Configuration (APP_CONFIG / REQUESTS_API_*)
Read via requests_api.conf: Django settings first, then APP_CONFIG["requests_api"], then defaults.
APP_CONFIG["requests_api"] |
Django setting | Notes |
|---|---|---|
CACHED_CLIENTS_MAXSIZE |
REQUESTS_API_CACHED_CLIENTS_MAXSIZE |
Cap for requests_api_for_base (default 8). 0 or below turns caching off. |
DEFAULT_REQUEST_TIMEOUT |
REQUESTS_API_DEFAULT_REQUEST_TIMEOUT |
Optional seconds; default None. Not applied automatically—call get_requests_api_default_request_timeout() and pass timeout= yourself if you want a shared value. |
from requests_api import get_requests_api_default_request_timeout
timeout = get_requests_api_default_request_timeout()
client = requests_api_for_base("https://api.example.com")
r = client.get("v1/x", timeout=timeout if timeout is not None else 30)
In tests, call clear_requests_api_client_cache() when you change cache settings. Full write-up: docs/tutorial/configuration.md (MkDocs: Tutorials → Configuration).
Run the example locally
git clone --depth=50 --branch=django-requests-api https://github.com/DLRSP/example.git example-requests-api
cd example-requests-api
python manage.py runserver
Then open http://127.0.0.1:8000 (install dependencies from that repo’s requirements/ first).
Docs
MkDocs sources live under docs/. See Contributing for mkdocs serve.
Used in
Public GitHub projects that reference django-requests-api / requests_api (weekly sync via .github/used-in.yaml and update-used-in):
django-iubenda — Django application for privacy and cookies policy managed by Iubenda.
Missing a project? Open a PR or run the workflow manually in your fork.
License
MIT — see LICENSE.
Metadata
Release files for django-requests-api 0.6.13
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| django_requests_api-0.6.13.tar.gz | 26.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| django_requests_api-0.6.13-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 100.2 kB
Release files / django_requests_api-0.6.13.tar.gz
| Download URL | django_requests_api-0.6.13.tar.gz |
|---|---|
| Size | 26.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0301667220940d663f255c899c5d7f6b09403411d0afcfb6485bdeedf2e5d0f8
|
|
BLAKE2b-256 checksum How to use checksums |
66036d62520f8cde614f6057dca5474bef43ac2a2beffb54d44d74defcf61785
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / django_requests_api-0.6.13-py3-none-any.whl
| Download URL | django_requests_api-0.6.13-py3-none-any.whl |
|---|---|
| Size | 73.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4e4e5cf0010f712bc95ae3dc32f9aba2bf0ad66479be9afeab5c8d0004499f3d
|
|
BLAKE2b-256 checksum How to use checksums |
0e0315054fa882d5ed9279e238d5435b2e3e25c7f6b5eaf6c223cdee6bcb13ce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|