Hey 👋 my name is Abdenasser I’m the creator of this little django APIs generator dr_scaffold and today I’m gonna show you how to use it to create fully functional REST APIs with django only using the command line, let’s get started.
Setting a django environement is outside of the scope of this article, I’m sure there’s a lot of guides and tutorials on how to do that all over internet you can follow one of them and get back, we’ll be waiting just right here!
In a nutshell here is the tasks we gonna do through this article:
1. Create a django project
2. Setup djangorestframework and dr_scaffold
3. Scaffold a blog api with Articles and Authors
4. Enjoying 🎉
1. Create a django project:
- Le’t create a django project using this django-admin command:
$ django-admin startproject myApi
- Let’s then cd to our newly created django project
cd myApi
and create a virtualenv with:
$ python3 -m virtualenv env
- Finally let’s activate our virtual env with:
$ source env/bin/activate
2. Setup djangorestframework and dr_scaffold:
- Let’s install django rest framework and dr_scaffold packages using pip like the following:
$ pip install djangorestframework
$ pip install dr-scaffold
- Next let’s add these packages to our project
INSTALLED_APPS
insidemyApi/settings.py
like this:
INSTALLED_APPS = [
...,
'rest_framework',
'dr_scaffold'
]
Then let’s add our core and api folders settings to myApi/settings.py
, (for the simplicity of the tutorial we’ll leave them empty):
CORE_FOLDER = "" # you can leave them empty
API_FOLDER = "" # or set them to be the same
3. Scaffold a blog api with Articles and Authors
Our blog api will be composed of two main resources an Article and a Author.
- Let’s scaffold our Author first:
$ python manage.py dr_scaffold blog Author name:charfield
🎉 Your RESTful Author api resource is ready 🎉
this command will generate a blog folder with
models.py
admin.py
views.py
serializers.py
urls.py
all populated with appropriate code that your REST api needs for Author resource
- Lets also generate the Article resource:
$ python manage.py dr_scaffold blog Post body:textfield author:foreignkey:Author
🎉 Your RESTful Post api resource is ready 🎉
this command will do the same thing but also will add a relation to our Author resource through a
foreignkey
field.
- In order to generate the database tables let’s add blog to our
INSTALLED_APPS
insidemyApi/settings.py
:
INSTALLED_APPS = [
...,
'rest_framework',
'dr_scaffold',
'blog'
]
- Then let’s run these commands to generate our migrations and migrate the database:
$ python manage.py makemigrations
$ python manage.py migrate
- Finally add our blog to our project’s
urlpatterns
insidemyApi/urls.py
:
urlpatterns = [
...,
path("blog/", include("blog.urls")),
]
- Don’t forget to import include in your project’s
urls.py
like so :
from django.conf.urls import include
- Your
urls.py
should look something like this in the end:
from django.conf.urls import include #our added import
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
path("blog/", include("blog.urls")), #our added bol path
]
- Now run
python manage.py runserver
and head over tohttp://127.0.0.1:8000/blog/
to see your fully created REST blog API.. and also you can generate a super user withpython manage.py createsuperuser
then head over tohttp://127.0.0.1:8000/admin
to check the admin panel.
Don’t forget to star the repo on github If you like it.. Enjoy 🎉 !