Plain
Plain is a web framework for building products with Python.
The core plain package provides the backbone of a Python web application (similar to Flask), while the additional first-party packages can power a more fully-featured database-backed app (similar to Django).
All Plain packages are designed to work together and use PEP 420 to share the plain namespace.
To quickly get started with Plain, visit plainframework.com/start/.
Core Modules
The plain package includes everything you need to start handling web requests with Python:
- assets - Serve static files and assets.
- cli - The
plainCLI, powered by Click. - csrf - Cross-Site Request Forgery protection.
- forms - HTML forms and form validation.
- http - HTTP request and response handling.
- logs - Logging configuration and utilities.
- preflight - Preflight checks for your app.
- runtime - Runtime settings and configuration.
- templates - Jinja2 templates and rendering.
- urls - URL routing and request dispatching.
- views - Class-based views and request handlers.
Foundational Packages
- plain.postgres - Define and interact with your database models.
- plain.cache - A database-driven general purpose cache.
- plain.email - Send emails with SMTP or custom backends.
- plain.sessions - User sessions and cookies.
- plain.jobs - Background jobs stored in the database.
- plain.api - Build APIs with Plain views.
- plain.mcp - Expose your app to AI clients as an MCP server.
Auth Packages
- plain.auth - User authentication and authorization.
- plain.oauth - OAuth authentication and API access.
- plain.passwords - Password-based login and registration.
- plain.loginlink - Login links for passwordless authentication.
Admin Packages
- plain.admin - An admin interface for back-office tasks.
- plain.flags - Feature flags.
- plain.connect - Export traces, metrics, and logs to Plain Cloud via OTLP.
Dev Packages
- plain.dev - A single command for local development.
- plain.testing - Write and run tests.
- plain.code - Code formatting and linting.
- plain.portal - Remote Python shell and file transfer via encrypted tunnel.
- plain.tunnel - Expose your local server to the internet.
Frontend Packages
- plain.tailwind - Tailwind CSS integration without Node.js.
- plain.htmx - HTMX integrated into views and templates.
- plain.elements - Server-side HTML components.
- plain.pages - Static pages with Markdown and Jinja2.
- plain.vendor - Vendor JavaScript and CSS libraries.
Metadata
Release files for plain 0.166.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| plain-0.166.0.tar.gz | 478.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| plain-0.166.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 930.9 kB
Release files / plain-0.166.0.tar.gz
| Download URL | plain-0.166.0.tar.gz |
|---|---|
| Size | 478.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c99b04f7eccb59503c4e9a70f67a64128398f95c65e7434321f3e5bca764f77b
|
|
BLAKE2b-256 checksum How to use checksums |
2c190a637bd4b1199a013d93ab410ee0203ad8090b98b9136ecad5e73fff06f9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / plain-0.166.0-py3-none-any.whl
| Download URL | plain-0.166.0-py3-none-any.whl |
|---|---|
| Size | 452.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ac3b6f84a0cad66967886b6cde4c650788a1138e0a49135fb135e8c35240286c
|
|
BLAKE2b-256 checksum How to use checksums |
cc300370e0a5f481367267ecd5a1cc8cd31a98d23c134cbe9bdd3ab433db10c1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for plain 0.166.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.