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.0.tar.gz (32.6 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.0-py3-none-any.whl (48.4 kB view details)

Uploaded Python 3

File details

Details for the file django-rework-0.7.0.tar.gz.

File metadata

  • Download URL: django-rework-0.7.0.tar.gz
  • Upload date:
  • Size: 32.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.10

File hashes

Hashes for django-rework-0.7.0.tar.gz
Algorithm Hash digest
SHA256 dd7d7d000d686d2bdd0d459759d9256c02b7add4bd984093cd855920302c195a
MD5 8d4775b295d37ee7f7b4307aa236b0a2
BLAKE2b-256 03294ce12ab90dc91975dc0c90177f849ec9b4e1718dfecc0bdfc7ccbfebca7e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: django_rework-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 48.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.10

File hashes

Hashes for django_rework-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 67a7d470bdd7da4d08accdc1abc6edc31b72bee4303818daa6f28b6c268a5a42
MD5 2453b82b9539614a778c374a91b2ec4e
BLAKE2b-256 06e2ab75b58ae553715e03d09d9a7baae1954ecb995a7665011f9c8902333944

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