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.2.tar.gz (32.9 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.2-py3-none-any.whl (48.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: django_rework-0.7.2.tar.gz
  • Upload date:
  • Size: 32.9 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.2.tar.gz
Algorithm Hash digest
SHA256 8406f654f703e24ccc68ef0d007168011ad8b94b7345167fecf52529d97bbf1e
MD5 ba4e2b972f85887d9fc05b0ddc831b71
BLAKE2b-256 075f43c485189729cc8961f628aa0a21a669f74e500f658766701109cd55d020

See more details on using hashes here.

File details

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

File metadata

  • Download URL: django_rework-0.7.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f8de87be8ac5d3f6710511cf0f841e85979fb3c86e1504e41bb141e39e64813b
MD5 392593c144b9b5121d57fab50a106098
BLAKE2b-256 51df7e67914f6059abf40f389056e90ff97419f6e85be31ef54812b728dfcf60

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