Skip to main content

Django integration for Web Monetization

Project description

Django Web Monetization

PyPI version Python Versions Django Versions License

A Django package that makes it easy to integrate the Web Monetization specification into web applications. It enables developers to monetize their websites through real-time payments using the Interledger Protocol (ILP).

Features

  • 🚀 Middleware to automatically add the payment pointer to HTTP headers
  • 🎯 Template tag to insert the monetization meta tag in templates
  • ⚙️ Simple configuration through settings.py
  • 🔒 Compatible with Django 3.2+
  • 📦 Easy installation with pip

Resources

Installation

pip install django-webmonetization

Configuration

  1. Add 'django_webmonetization' to INSTALLED_APPS in settings.py:
INSTALLED_APPS = [
    ...
    'django_webmonetization',
]
  1. Configure your payment pointer in settings.py:
WEBMONETIZATION_PAYMENT_POINTER = '$ilp.example.com/your-payment-pointer'
  1. (Optional) Add the middleware to MIDDLEWARE in settings.py:
MIDDLEWARE = [
    ...
    'django_webmonetization.middleware.WebMonetizationMiddleware',
]

Usage

In Django Templates

{% load webmonetization %}
<!DOCTYPE html>
<html>
<head>
    {% webmonetization_meta %}
    <title>My Monetized Website</title>
</head>
<body>
    <h1>Welcome to my website</h1>
    <p>This site is monetized with Web Monetization</p>
</body>
</html>

HTTP Headers Verification

The middleware automatically adds the Web-Monetization-Pointer header to all HTTP responses. You can verify it with curl:

curl -I https://your-site.com

You should see something like:

HTTP/1.1 200 OK
...
Web-Monetization-Pointer: $ilp.example.com/your-payment-pointer

Integration Examples

1. Basic Monetization

# settings.py
WEBMONETIZATION_PAYMENT_POINTER = '$ilp.example.com/basic'

# views.py
from django.shortcuts import render

def home(request):
    return render(request, 'home.html')
<!-- templates/home.html -->
{% load webmonetization %}
<!DOCTYPE html>
<html>
<head>
    {% webmonetization_meta %}
</head>
<body>
    <h1>Home Page</h1>
</body>
</html>

Requirements

Main Dependencies

  • Python 3.7+
  • Django 3.2+

Development Dependencies

  • pytest>=7.0.0
  • pytest-cov>=4.0.0

Contributing

Contributions are welcome! Please feel free to submit a pull request.

License

MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_webmonetization_martinm10-0.1.1.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file django_webmonetization_martinm10-0.1.1.tar.gz.

File metadata

File hashes

Hashes for django_webmonetization_martinm10-0.1.1.tar.gz
Algorithm Hash digest
SHA256 77bccf139eabeba0ac9c342b114c99654b8da8135d47445bbebfb6b344aa5908
MD5 2805e623626857d19a96470a30ea11ca
BLAKE2b-256 05bb16e154d11bf2cc7ba1b3b01cf51a538869ebfb479cf1b16afdb9fde4a64f

See more details on using hashes here.

File details

Details for the file django_webmonetization_martinm10-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for django_webmonetization_martinm10-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a30e28aa693da092c430515aa7493b45ae95c6396726417031f9d1b8dcdb4615
MD5 915b35fc4b704783a3adad5d9f4fe302
BLAKE2b-256 fedc96bb91594811560dc3df8509ebafa7e05612b808bb9190a3ff88a6669da5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page