Skip to main content

Rapid develop framework base on Django

Project description

Django Rework

Downloads PyPI Python Django License

Rapid develop framework base on Django, integrated with Django-Ninja.

Installation & Cli commands

Requirements

  • Python >= 3.8
  • Django >= 3.2
  • 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

Code Format

Code format using Google 的 yapf,recommend to install yapf globally:

# install yapf using pip in python3
$ python3 -m pip install yapf

# find and create soft link to `/usr/local/bin/yapf`
# find yapf execute file 

$ which yapf
# (/usr/local/python3.7/bin/yapf) possible location

$ ln -s /usr/local/python3.7/bin/yapf /usr/local/bin/yapf

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.5.2.tar.gz (24.0 kB view details)

Uploaded Source

Built Distribution

django_rework-0.5.2-py3-none-any.whl (42.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: django-rework-0.5.2.tar.gz
  • Upload date:
  • Size: 24.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.15

File hashes

Hashes for django-rework-0.5.2.tar.gz
Algorithm Hash digest
SHA256 34d0d60e8d000f772224da3d9b413667140e9b41ea3dcda0114f4e9f9c78d748
MD5 fa96203470096075eefcfb015c5893a5
BLAKE2b-256 3dbdd2a83ff1328f5dafb041acaa0d009c9f7575b9c4d1320bd358058024f1ad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_rework-0.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 57e23100fc86cbd58aa042ca8788dd602c31da90d7f6fe7250596f6c2970720b
MD5 bb05fc849e76a45091c177a959c5b0d3
BLAKE2b-256 f526a04721002ba50169330a646103eee1a7ed2b3906601e156b8bccbe2d9858

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page