Skip to main content

Http-Html A lightweight and complete Python library for building simple web servers.

Features Integrated Web Structure: Includes classes for Request, Response, Router, and Server.

Request Routing: Automatically directs each URL to a specific function using the Router class.

Easy Header Building: Build complex HTTP headers in a single line.

Automatic Request Parsing: Parses incoming requests (GET and POST) automatically.

Standard Status Codes: Supports standard HTTP status codes and their messages.

Installation You can install the library easily using pip once it's published on PyPI:

Bash

pip install http-html How to Use http-html This library is designed to make it simple to build a web server from scratch. All you need is a single Python file to run your server.

Step 1: Create Your Server First, create a Server object. This class handles the low-level socket connections and listens for incoming requests.

Python

main_server.py

from httpkit.server import Server

HOST = '0.0.0.0' PORT = 8080

Create your server instance

app = Server(HOST, PORT)

Start the server

if name == "main": app.run() Step 2: Define Your Routes Use the @app.route decorator to connect specific URLs to a function. The decorator takes two arguments: the path (e.g., "/", "/about") and the HTTP method (e.g., "GET", "POST").

Python

from httpkit.response import Response

@app.route("/", "GET") def index_page(client_connection, request): html_content = "

Welcome to Http-Html!

" # The handler function takes two arguments: # 1. client_connection: for sending the response # 2. request: the parsed request object

# Use Response to build and send the final data
response = Response(200, "text/html", html_content)
client_connection.sendall(response.build())

@app.route("/contact", "GET") def contact_page(client_connection, request): html_content = "Contact us at my_email@example.com" response = Response(200, "text/html", html_content) client_connection.sendall(response.build()) Step 3: Handle Requests The request object provides easy access to all the information from the browser. You can access headers, the request method, and the path.

Python

@app.route("/user-info", "GET") def user_info(client_connection, request): # Access a header (e.g., User-Agent) user_agent = request.headers.get("User-Agent", "Not specified")

# Access the request path
path = request.path

# Access the request method (GET, POST)
method = request.method

# You can also get POST data from request.body
# ...

Step 4: Build a Response Use the Response class to build the final HTTP response. It handles everything for you and is a much better way than manually writing the headers.

Python

from httpkit.response import Response

This creates a complete HTTP response with headers and body

my_response = Response( 200, # Status Code (e.g., 200) "text/html", # Content Type "

Success!

" # Content )

Use the .build() method to get the final bytes to send

final_bytes = my_response.build() License This project is licensed under the MIT License.

Release files for http-html 0.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for http-html 0.0.4
File Size Uploaded
http_html-0.0.4.tar.gz 9.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for http-html 0.0.4
File Interpreter ABI Platform
http_html-0.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 21.0 kB

Release files / http_html-0.0.4.tar.gz

Download URL http_html-0.0.4.tar.gz
Size 9.8 kB
Tags Source
SHA-256 checksum
How to use checksums
e8377a1a8768264317716460f56a9de2d8fdf9aeecd67ae0532c028492f91eff
BLAKE2b-256 checksum
How to use checksums
89a73d669f9eaa789ae169f95a99c65076a9ab2f9b067b5e5c97cfc255c62b6a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.11

Release files / http_html-0.0.4-py3-none-any.whl

Download URL http_html-0.0.4-py3-none-any.whl
Size 11.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
71d60658ab925a052904436c8da0f93bfe60ec5867b50d9d6faa171645d73483
BLAKE2b-256 checksum
How to use checksums
51fcfd3ff535fd500a24965d0abc70077f639436a9da42935cf26022ee82dab5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.11

Release history Release notifications | RSS feed

This release

0.0.4 This release

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page