একটি প্রজেক্ট তৈরী করে তার মধ্যে একটি app বানিয়ে এপ্লিকেশন এর মধ্যে Post মডেল বানিয়ে অ্যাডমিন প্যানেল থেকে পোস্ট করার ব্যবস্থা করি।
Django-admin startproject LiveData
cd LiveData
python manage.py startapp liveajaxsettings.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.titleDatabase Migrations
python manage.py makemigrations
python manage.py migratecreate super user
python manage.py createsuperuseradd 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>এখন যেকোনো পোস্ট করলে পেজ রিফ্রেশ ছাড়াই অটোমেটিক্যালি লোড হবে
