DEV Community

Dhiraj Patra
Dhiraj Patra

Posted on

Django Kafka

How to develop a basic outline of an end-to-end Python application using Django, Django Rest Framework (DRF), and Apache Kafka. Below is an example demo application code to get you started:

 # 1. Set up Django project  # Create a Django project  django-admin startproject myproject # Create a Django app  python manage.py startapp myapp # 2. Install required packages  pip install django djangorestframework kafka-python # 3. Configure Kafka  # Assuming Kafka is running locally on default ports  # 4. Configure Django settings.py  # Add 'rest_framework' and 'myapp' to INSTALLED_APPS  # Configure Kafka settings if necessary  # 5. Define Django models in models.py (in myapp)  from django.db import models class Message(models.Model): content = models.CharField(max_length=255) created_at = models.DateTimeField(auto_now_add=True) def __str__(self): return self.content # 6. Define DRF serializers in serializers.py (in myapp)  from rest_framework import serializers from .models import Message class MessageSerializer(serializers.ModelSerializer): class Meta: model = Message fields = ['id', 'content', 'created_at'] # 7. Define DRF views in views.py (in myapp)  from rest_framework import viewsets from .models import Message from .serializers import MessageSerializer class MessageViewSet(viewsets.ModelViewSet): queryset = Message.objects.all() serializer_class = MessageSerializer # 8. Configure Django URLs in urls.py (in myapp)  from django.urls import path, include from rest_framework.routers import DefaultRouter from .views import MessageViewSet router = DefaultRouter() router.register(r'messages', MessageViewSet) urlpatterns = [ path('', include(router.urls)), ] # 9. Produce messages to Kafka (producer.py)  from kafka import KafkaProducer producer = KafkaProducer(bootstrap_servers='localhost:9092') def send_message(msg): producer.send('my-topic', msg.encode()) # Example usage:  send_message("Hello Kafka!") # 10. Consume messages from Kafka (consumer.py)  from kafka import KafkaConsumer consumer = KafkaConsumer('my-topic', bootstrap_servers='localhost:9092') for message in consumer: print ("%s:%d:%d: key=%s value=%s" % (message.topic, message.partition, message.offset, message.key, message.value.decode('utf-8'))) # 11. Run Django server  python manage.py runserver 
Enter fullscreen mode Exit fullscreen mode

This setup will provide you with a basic Django project integrated with Django Rest Framework and Kafka. You can extend it further based on your application requirements. Let me know if you need more detailed explanations or assistance with any specific part!

Top comments (1)

Collapse
 
__b35d045b2432f profile image
Артур Шутов

useless topic
dislike