Django Rest CLI ✨
Scaffold your DRF project with common python packages configured, auto-generated docs, auto-generated CRUD endpoints, code linting with pre-commit hook, and more⚡🚀
What is Django Rest CLI ?
A CLI tool for rapid Rest APIs development. It abstracts the repeated aspects of building a REST API with the Django Framework by:
-
Allowing you start your project from one of three templates. Each template comes with features you'd most likely be setting up yourself already configured for you.
-
Allowing you define your models and have this tool generate CRUD endpoints for each model defined. For example, if you define a model, Product in your
models.py
file, this tool could generate a GET /products POST /products PUT /products/etc. endpoints for that model. -
Allowing you create all the apps in your project at once, if you know them before hand.
Demo
Getting Started
Installation
pip install dr-cli
I highly recommend that you install this in a virtual environment.
Create a New Project
-
Run
dr-cli startproject project_name
to start a new DRF project. -
You'd be prompted to start your project from one of three templates: Basic, Medior, and Advanced templates. Learn more about what each template comes bundled with here.
-
On selecting one of the templates your project will then be created. Git will be initialized in your project, and all project dependencies installed as shown in the image below:
The generated project comes with a nice Readme containing the steps for running the project
Create New Apps in your Project
-
Run
dr-cli startapps todo me-nu user
to create multiple Django apps in your project. Wheretodo me-nu user
are your app names. -
Running the above command will create all your apps. Name validations would also be performed as shown in the image below:
Note Make sure to add your created apps to the list of INSTALLED APPS
Generate CRUD Endpoints for your Apps
-
Run
dr-cli addcrud memo user
to create CRUD endpoints for the models defined in the specified apps. -
Running the above command would return a nice looking feedback as shown in the image below:
Note Make sure to register the URLs
for each app in the top level urls.py
file.
On Windows, Emojis are only supported in Windows Terminal Preview
Accessing the docs page
- Run
python manage.py runserver
to fire up your local development server, and point your browser tohttp://localhost:8000/api/v1/docs
to view the auto-generated docs page shown in the image below:
Motivation
I've documented my motivation for working on this tool here.
Contributing Guide
Coming soon...
Acknowledgements
In building this I re-used a few parts of these repositories in this project: - django-classy-start - dr-scaffold
I Love this, how can I thank you Nyior?
Please let your developer friends know about this repo :) If you star this repo too I won't complain xD
Limitations
Python310 isn't supported in this project yet. We are working on it.
Licence
MIT