Skip to main content

Non-verbose Django development experience

Project description

Django Rework

Downloads PyPI Python Django License

Rapid develop framework base on Django and Django-Ninja, with non-verbose Django development experience.

Inspired by RailgunS

Installation & Cli commands

Requirements

  • Python >= 3.9
  • Django >= 3.2
  • Django-Ninja >= 1.3
  • Django REST framework >=3.13,<4.0

Install django-rework

pip install django-rework

Generic CLI Commands

Start a new project

# It will create project in current dir
# eg: initialize a new project named `pony`
rework init pony

Add build-in contrib Apps

rework add users

Add deployment configurations

rework deploy --init

Deploy to test or production

rework deploy  # or 'fab -H web1 deploy'

Core docs

Custom exceptions

The exception handler must also be configured in your settings, using the EXCEPTION_HANDLER setting key. For example:

REST_FRAMEWORK = {
    'EXCEPTION_HANDLER': 'rework.core.views.exception_handler'
}

Use build-in custom exceptions:

from rework.core.exceptions import ValidateError
ValidateError(
    detail='You do not have permission to perform this action.', 
    code='permission_denied',
)

🥭 Build-in custom exceptions

App docs

App Description docs in English 简体中文文档
users Users system users.md users_cn.md

DevOps Fabric scripts

Setup hosts

django-rework deal with DevOps using Fabric. You should add hosts configurations in fabfile.py.

import os
from rework.core.devops.hosts import loads

# The first argument `default` is host alias
# `user` is optional, default value is `root`
# `envs` is the server support deploy environments
# `exclude_components` is optional, it's been used in `fab setup_server`
loads(
    'default', {
        'host': 'your-server-ip',
        'port': 22,
        'user': 'root',
        'connect_kwargs': {
            'password': 'server-password',
        },
        'envs': ['test', 'prod'],
        'exclude_components': ['redis'],
    }
)

# Using SSH key
loads(
    'web1', {
        'host': 'your-server-ip',
        'connect_kwargs': {
            'key_filename': os.path.join(os.path.abspath('.'), '.deploy/private.pem'),
        },
    }
)

You can change host alias as you like: web1 etc.

fab -H web1 deploy

if not -H provided, the default alias will use according the order below:

  1. environment name: dev, test, prod
  2. default

Deploy environments

By default, environments is dev, test, prod, every environment name is a generic fabric tasks.

# deploy to `test` environment
fab test deploy

If you want to update requirements, you should add arguments -r or --requirements_update

fab test deploy -r

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_rework-0.7.1.tar.gz (33.0 kB view details)

Uploaded Source

Built Distribution

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

django_rework-0.7.1-py3-none-any.whl (48.5 kB view details)

Uploaded Python 3

File details

Details for the file django_rework-0.7.1.tar.gz.

File metadata

  • Download URL: django_rework-0.7.1.tar.gz
  • Upload date:
  • Size: 33.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for django_rework-0.7.1.tar.gz
Algorithm Hash digest
SHA256 a124e19efc03005fc52fc5a2c583d06995d39ebaf6543a901fa593fd18b96dab
MD5 fb0ddfff1675f9c1978b840bb6464a3d
BLAKE2b-256 ae10fd7fd4453872ca37ba1461b4c573da260105e9ca7bc5ea3d033203df0ea5

See more details on using hashes here.

File details

Details for the file django_rework-0.7.1-py3-none-any.whl.

File metadata

  • Download URL: django_rework-0.7.1-py3-none-any.whl
  • Upload date:
  • Size: 48.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for django_rework-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 935c9737af0a7e4303acd12128d445f219d5d8b510ecfd645e6b7e6c42467003
MD5 49a8e3b0a5148e226bc324df95be8032
BLAKE2b-256 0074f791d1bbb40c0fe4ba9ef58c4e02fbb7d9409e9d6e963df2a86d0fe9f562

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