Django TalkTo allows you to consume RESTful APIs seamlessly without need to create database
- TalkToModel, inherits the django Model class, but won't create any migration files, 😃
- APIManager, inherits Django Manager(I won't touch your DB i promise 😋 )
- TalkToModelForm, inherits Django ModelForm.
-
TalkToWriteView which makes
POST/PUT
request to an endpoint (Django CreateView and UpdateView in one pot 😉 ) -
TalkToListView which makes
GET
request to an endpoint (Django ListView, no bigs) -
TalkToDetailView which makes
GET
request with a parameter (Django DetailView)
Django Rest Framework support
You can also use Django TalkTo with Django Rest Framework
- TalkToModelSerializer, inherits DRF ModelSerializer, that won't touch the DB, cool right?
- TalkToAPIView which makes
POST
,GET
andPUT
requests.DELETE
requests coming soon.
Install using pip
pip install djangotalkto
Notes to Django Rest Framework users
You need to have djangorestframework installed and added to INSTALLED_APPS in settings. You can install it with djangotalkto using
pip install djangotalkto[rest]
Start a new django project
pip install django
django-admin startproject newproj .
pip install djangotalkto
Add 'talkto'
to INSTALLED_APPS
in your project settings
Then create TALKTO dict in your settings with the following properties
TALKTO = {
'default': {
'URL': 'your-api-base-url', #Important!
'HEADERS': {key: value}, # You can add your Authorization here
}
}
from talkto.models import TalkToModel, APIManager
from django.db import models
class SampleModel(TalkToModel):
name = models.CharField(max_length=255)
age = models.IntegerField()
# Then add your APIManager with the variable name 'api'
api = APIManager(path='user/')
# 'path' in this case is the path you will be making your request which is
# concatenated with the URL set in TALKTO config in settings.py
from talkto.forms import TalkToModelForm
class SampleForm(TalkToModelForm):
class Meta:
model = SampleModel
fields = '__all__'
from talkto.views import TalkToWriteView, TalkToDetailView, TalkToListView
class TestCreate(TalkToWriteView):
form_class = SampleForm
model = SampleModel
success_url = reverse_lazy('books')
template_name = 'index.html'
# Detail view
class SampleDetail(TalkToDetailView):
model = SampleModel
template_name = 'detail.html'
# List view
class SampleList(TalkToListView):
model = SampleModel
template_name = 'detail.html'
URLConf works the same.
from talkto.serializer import TalkToModelSerializer
class SampleSerializer(TalkToModelSerializer):
class Meta:
model = SampleModel
fields = '__all__'
class SampleView(TalkToAPIView):
model = SampleModel
serializer_class = SampleSerializer
URLConf works the same.
coming soon....
As this is still in it's early project there might be some use cases that are not covered. Therefore you can contact me using the following channels.