Skip to main content

A Django app to talk to APIs.

Project description

Django TalkTo

Updates Python 3

Overview

Django TalkTo allows you to consume RESTful APIs seamlessly without need to create database

Model
  • TalkToModel, inherits the django Model class, but won't create any migration files, :smiley:
  • APIManager, inherits Django Manager(I won't touch your DB i promise :yum: )
ModelForm
  • TalkToModelForm, inherits Django ModelForm.
Views
  • TalkToWriteView which makes POST/PUT request to an endpoint (Django CreateView and UpdateView in one pot :wink: )

  • 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

Serializer
  • TalkToModelSerializer, inherits DRF ModelSerializer, that won't touch the DB, cool right?
View
  • TalkToAPIView which makes POST, GET and PUT requests. DELETE requests coming soon.

Installation

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]

Usage

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
    }

}
Creating your Model
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
Creating your ModelForm is much like the same.
from talkto.forms import TalkToModelForm


class SampleForm(TalkToModelForm):
    class Meta:
        model = SampleModel
        fields = '__all__'
Views
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.

Django Rest Framework
Serializer
from talkto.serializer import TalkToModelSerializer

class SampleSerializer(TalkToModelSerializer):
    class Meta:
        model = SampleModel
        fields = '__all__'
API View
class SampleView(TalkToAPIView):
    model = SampleModel
    serializer_class = SampleSerializer

URLConf works the same.


CONTRIBUTING

coming soon....


Supports

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

djangotalkto-0.1.4.tar.gz (9.6 kB view details)

Uploaded Source

Built Distribution

djangotalkto-0.1.4-py3-none-any.whl (12.5 kB view details)

Uploaded Python 3

File details

Details for the file djangotalkto-0.1.4.tar.gz.

File metadata

  • Download URL: djangotalkto-0.1.4.tar.gz
  • Upload date:
  • Size: 9.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.4rc1

File hashes

Hashes for djangotalkto-0.1.4.tar.gz
Algorithm Hash digest
SHA256 5c4a63adab0df4562066b940e04f2a9e4f65fba0a1a75d9a515bf20bc0c74b54
MD5 19c422de3a370d2a50d15268c0191b33
BLAKE2b-256 c2cf6a9c969d7be78ed01fe29db6a91e8de67b7b10b093889859934e76c4c92c

See more details on using hashes here.

File details

Details for the file djangotalkto-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: djangotalkto-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 12.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.4rc1

File hashes

Hashes for djangotalkto-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 2d34e136e4d14ed18de7385965b754cd3c5a11aa4e83d69c7960fcc91031c1e7
MD5 122bbdc2176a3aa975a4f38284b47188
BLAKE2b-256 dee1982c121ff1e44d92ee5ef1952c9d6faccb48af359b2a5f1c5077ec0a76b4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page