Skip to main content

Database models for Plain.

Project description

plain.models

Model your data and store it in a database.

# app/users/models.py
from plain import models
from plain.passwords.models import PasswordField


class User(models.Model):
    email = models.EmailField(unique=True)
    password = PasswordField()
    is_admin = models.BooleanField(default=False)
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.email

Create, update, and delete instances of your models:

from .models import User


# Create a new user
user = User.objects.create(
    email="test@example.com",
    password="password",
)

# Update a user
user.email = "new@example.com"
user.save()

# Delete a user
user.delete()

# Query for users
admin_users = User.objects.filter(is_admin=True)

Installation

# app/settings.py
INSTALLED_PACKAGES = [
    ...
    "plain.models",
]

To connect to a database, you can provide a DATABASE_URL environment variable.

DATABASE_URL=postgresql://user:password@localhost:5432/dbname

Or you can manually define the DATABASES setting.

# app/settings.py
DATABASES = {
    "default": {
        "ENGINE": "plain.models.backends.postgresql",
        "NAME": "dbname",
        "USER": "user",
        "PASSWORD": "password",
        "HOST": "localhost",
        "PORT": "5432",
    }
}

Multiple backends are supported, including Postgres, MySQL, and SQLite.

Querying

Migrations

Migration docs

Fields

Field docs

Validation

Indexes and constraints

Managers

Forms

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

plain_models-0.21.0.tar.gz (369.4 kB view details)

Uploaded Source

Built Distribution

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

plain_models-0.21.0-py3-none-any.whl (424.4 kB view details)

Uploaded Python 3

File details

Details for the file plain_models-0.21.0.tar.gz.

File metadata

  • Download URL: plain_models-0.21.0.tar.gz
  • Upload date:
  • Size: 369.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.6.5

File hashes

Hashes for plain_models-0.21.0.tar.gz
Algorithm Hash digest
SHA256 2a4d1d3ef74e5e8d73c31eb1ae284b4ce078e23112c131717cfe2da6fab8dca2
MD5 c9ae4b930b642d5216c719e594d73ae6
BLAKE2b-256 fdde27be65b4df6dd6c5a9008cc17e41fdd01311b018c310f0179860867545b9

See more details on using hashes here.

File details

Details for the file plain_models-0.21.0-py3-none-any.whl.

File metadata

File hashes

Hashes for plain_models-0.21.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a2a3d2799f673e64f20951f0d3db15e20a48b46a780df7ae233372194f796520
MD5 af95e5f4612100f41403af0d0fb471c0
BLAKE2b-256 08bc58efcacabab0a2983d0d9badc2b5faac2c89ef3feab87cb4d9010a5b41db

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