cc_automated_drf_template uses Cookiecutter and a custom script to automatically populate a Django REST project given a models.py. Just provide your models.py and cc_automated_drf_template will write your views, serializers, urls, and admin files for you.
- Django REST Framework integration
- Support for multiple apps
- JWT authentication
- Fully populated serializers.py, views.py, urls.py, admin.py
$ pip install cookiecutter
Give names for your directory, project, and app when prompted by Cookiecutter:
$ cookiecutter https://github.com/TAMU-CPT/cc-automated-drf-template.git dir_name [test-project]: project_name [project]: app_name [base_app]:
Modify your models.py file in your app. Then navigate to where manage.py and script.py are located and run:
$ python script.py
The script will install all requirements and automatically apply migrations.
That's it! You now have automatically-templated views, serializers, urls, and admin files based on your models. To check it all out, run the server. Don't forget to activate your virtualenv! You may also want to createsuperuser so that you can log in to the admin interface.
$ . venv/bin/activate $ python manage.py createsuperuser $ python manage.py runserver
Note on virtual environments:
If you have already set up/activated a virtual environment, make sure to use the
Otherwise, a virtualenv will be created for you.
Multiple app support
Some Django projects have multiple apps in addition to the base application.
If you want to similarly generate files for these apps, you may run the script again
--app_name flag, like this:
(venv) $ python script.py --app_name another_app --disable_venv
Since I am already in a venv, I also used
Note on file changes:
If you have modified views, serializers, urls, or admin files before running the script or are
unsure of the changes made after running it, make sure to
git add -p to add or ignore changes
that will be staged in the next commit.
If you are looking to add a front end, check out CICADA, which will automatically template an AngularJS frontend that will plug in to the backend you just created.
This software is licensed under BSD-3-Clause