Rapid develop framework base on Django
Project description
Django Rework
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',
)
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:
- environment name:
dev
,test
,prod
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
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
Built Distribution
Hashes for django_rework-0.6.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | da045cd5424d4513abdb79824c42796e2668416ab7eb996c578e05d4bed6b23b |
|
MD5 | afce8df0c61cfc872195fa210607d4c4 |
|
BLAKE2b-256 | a938a108bdf2bd23d924e34b23f89199119a9754e0656d45ab3dbc5a106a6ab7 |