Framework for views in big projects on Django.


Keywords
djburger, framework, django, contracts, pre, post, validation, api, cbv, clean-code, contracts-programming, decorators, design-by-contract, django-rest-framework, marshmallow, mvc, mvc-framework, parse, python, rest, rest-api, restful-api, scheme, solid, validator
License
LGPL-3.0
Install
pip install djburger==0.11.1

Documentation

DjBurger

DjBurger logo

Build Status Documentation PyPI version Status Code size License

DjBurger -- framework for safe and maintainable web-projects.

What DjBurger do?

  • Split Django views into steps for secure and clean code.
  • Provide built-in objects for all steps.
  • Integrates this many side libraries like Django REST Framework and Marshmallow.

DjBurger doesn't depend on Django. You can use it in any projects if you want.

Read more into documentation.

Key principles

  1. Validation logic is separate from the main logic.
  2. Reusable logic for many views.
  3. Reusable input and output data formats.
  4. More clean views.

Dataflow

  1. Decorators. Feel free to use any side Django decorators like csrf_exempt.
  2. Parser. Parse request body.
  3. PreValidator. Validate and clear request.
  4. PreRenderer. Render and return PreValidation errors response.
  5. Controller. Main logic: do some things.
  6. PostValidator. Validate and clear response.
  7. PostRenderer. Render and return PostValidation errors response.
  8. Renderer. Render successful response.

Scheme

Required only Controller and Renderer.

Explore

  1. Read documentation.
  2. See example project.
  3. For quick help just inspect djburger from python console (for example, help('djburger.views')).
  4. If you have some questions then view issues or create new.
  5. If you found some mistakes then fix it and create Pull Request. Contributors are welcome.
  6. Star this project on github :)