Django

⌘K
  1. Home
  2. Django
  3. Django তে কিভাবে কাজ করতে...
  4. Jquery Ajax Live Post Data

Jquery Ajax Live Post Data

একটি প্রজেক্ট তৈরী করে তার মধ্যে একটি app বানিয়ে এপ্লিকেশন এর মধ্যে Post মডেল বানিয়ে অ্যাডমিন প্যানেল থেকে পোস্ট করার ব্যবস্থা করি।

Django-admin startproject LiveData
cd LiveData
python manage.py startapp liveajax

settings.py

INSTALLED_APPS = [
    'liveajax',
]

models.py

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=255)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    
    def __str__(self):
        return self.title

Database Migrations

python manage.py makemigrations
python manage.py migrate

create super user

python manage.py createsuperuser

add model to admin panel

from django.contrib import admin
from .models import Post
admin.site.register(Post)
# Register your models here.

Run Server

python manage.py runserver

views.py

from django.http import JsonResponse
from .models import Post

def get_latest_posts(request):
    latest_posts = Post.objects.all().order_by('-created_at')[:5]
    data = []
    for post in latest_posts:
        data.append({
            'id': post.id,
            'title': post.title,
            'content': post.content,
            'created_at': post.created_at.strftime('%B %d, %Y'),
        })
    return JsonResponse({'posts': data})

urls.py

    path('posts/latest/', views.get_latest_posts, name='get_latest_posts'),

index.html add below script

<script
 
src="https://code.jquery.com/jquery-3.6.0.min.js"

integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4="

crossorigin="anonymous"></script>
<script>

    $(document).ready(function() {
        function getLatestPosts() {
          $.ajax({
            url: '/posts/latest/',
            dataType: 'json',
            success: function(data) {
              var html = '';
              for (var i = 0; i < data.posts.length; i++) {
                var post = data.posts[i];
                html += '<tr>';
                html += '<td>' + post.title + '</td>';
                html += '<td>' + post.content + '</td>';
                html += '</tr>';
              }
              $('#latest-posts').html(html);
            }
          });
        }
      
        getLatestPosts();
      
        setInterval(getLatestPosts, 5000); // Update every 5 seconds
      });
      
</script>

এখন যেকোনো পোস্ট করলে পেজ রিফ্রেশ ছাড়াই অটোমেটিক্যালি লোড হবে

How can we help?