A handy tool for generating Django-based backend projects without coding. On the other hand, it is a code generator of the Django framework.
The django-sage-painless is a valuable package based on Django Web Framework & Django Rest Framework for high-level and rapid web development. The introduced package generates Django applications. After completing many projects, we concluded that any basic project and essential part is its database structure. You can give the database schema in this package and get some parts of the Django application, such as API, models, admin, signals, model cache, setting configuration, mixins, etc. All of these capabilities come with a unit test. So you no longer have to worry about the simple parts of Django, and now you can write your advanced services in Django. The django-sage-painless dramatically speeds up the initial development of your projects. Documentation of this package is available in readthedocs.
However, we intend to make it possible to use it in projects that are in-progress.
We used the name painless instead of the Django code generator because this package allows you to reach your goals with less effort.
Before creating Djagno project you must first create virtualenv.
$ python3.9 -m pip install virtualenv
$ python3.9 -m virtualenv venv
To activate virtualenvironment in ubuntu:
$ source venv/bin/activate
To deactive vritualenvironment use:
$ deactivate
First create a Django project
$ mkdir GeneratorTutorials
$ cd GeneratorTutorials
$ django-admin startproject kernel .
First install package
$ pip install django-sage-painless
Then add 'sage_painless' to INSTALLED_APPS in settings.py
TIP: You do not need to install the following packages unless you request to automatically generate an API or API documentation.
However, you can add following apps in your INSTALLED_APPS:
INSTALLED_APPS = [
'sage_painless',
'rest_framework',
'drf_yasg',
'django_seed',
]
To generate a Django app you just need a diagram in JSON format. diagram is a json file that contains information about database tables.
start to generate (it is required for development. you will run tests on this app)
$ python manage.py validate_diagram --diagram <path to diagram>
$ python manage.py generate --diagram <path to diagram>
$ python manage.py deploy --diagram <path to deploy diagram>
$ python manage.py docs --diagram <path to diagram>
Here system will ask you what you want to generate for your app.
urlpatterns = [
path('api/', include('products.api.urls')),
]
$ python manage.py makemigrations
$ python manage.py migrate
$ python manage.py test products
$ python manage.py runserver
from rest_framework.permissions import AllowAny
from drf_yasg.views import get_schema_view
from drf_yasg import openapi
schema_view = get_schema_view(
openapi.Info(
title="Rest API Doc",
default_version='v1',
description="Auto Generated API Docs",
license=openapi.License(name="S.A.G.E License"),
),
public=True,
permission_classes=(AllowAny,),
)
urlpatterns = [
path('api/doc/', schema_view.with_ui('redoc', cache_timeout=0), name='schema-swagger-ui'),
]
localhost:8000/api/doc/
Run project tests before starting to develop
products
app is required for running tests$ python manage.py startapp products
INSTALLED_APPS = [
'products',
]
you have to generate everything for this app
diagram file is available here: Diagram
download diagram file and generate test app using this commend
$ python manage.py generate --diagram tests/diagrams/product_diagram.json
$ python manage.py test sage_painless
S.A.G.E. team Git Rules Policy is available here:
Sepehr Akbarazadeh Maintainer | Mehran Rahmanzadeh Maintainer |