ChatGPT का उपयोग किए बिना Django का उपयोग करके एक ब्लॉग ऐप बनाने की मेरी यात्रा में आपका फिर से स्वागत है। इस सप्ताह, मैंने अपने ब्लॉग ऐप को बेहतर बनाने के लिए प्रमुख सुविधाओं को लागू करने पर ध्यान केंद्रित किया। मैंने एक कार्यक्षमता जोड़ी है जो उपयोगकर्ताओं को पोस्ट बनाने, पोस्ट पर टिप्पणी करने और अन्य उपयोगकर्ताओं की पोस्ट को पसंद करने की अनुमति देती है।
python manage.py startapp posts
मैंने पोस्ट मॉडल को डिज़ाइन करके शुरुआत की। यह मॉडल उपयोगकर्ताओं द्वारा बनाए गए ब्लॉग पोस्ट को संग्रहीत करेगा:
from django.db import models from django.contrib.auth.models import User from django.utils import timezone class Post(models.Model): title = models.CharField(max_length=100) description = models.CharField(max_length=200, help_text="Excerpt of the post...") content = models.TextField() author = models.ForeignKey(User, on_delete=models.CASCADE) publication_date = models.DateTimeField(default=timezone.now) def __str__(self): return self.title
इसके बाद, मैंने उपयोगकर्ताओं को पोस्ट पर टिप्पणी छोड़ने और पसंद करने की अनुमति देने के लिए टिप्पणी और पसंद मॉडल भी बनाए:
class Comment(models.Model): post = models.ForeignKey(Post, related_name="comments", on_delete=models.CASCADE) author = models.ForeignKey(User, on_delete=models.CASCADE) content = models.TextField() created_at = models.DateTimeField(default=timezone.now) def __str__(self): return f"Comment by {self.author} on {self.post}" class Like(models.Model): post = models.ForeignKey(Post, related_name="likes", on_delete=models.CASCADE) user = models.ForeignKey(User, on_delete=models.CASCADE) created_at = models.DateTimeField(default=timezone.now) def __str__(self): return f"Like by {self.user} on {self.post}"
मैं टेम्प्लेट भी शामिल नहीं करूंगा। मैंने सभी पोस्ट बनाने, सूचीबद्ध करने और अलग-अलग पोस्ट प्रदर्शित करने के लिए दृश्य बनाए:
from django.shortcuts import render, redirect, get_object_or_404 from rest_framework import generics from django.contrib.auth.decorators import login_required from .serializer import PostSerializer from .forms import * from .models import * def create_post(request): if request.method == "POST": form = PostForm(request.POST) if form.is_valid(): newPost = form.save(commit=False) newPost.author = request.user newPost.save() return redirect("posts:my-posts") else: form = PostForm() return render(request, "create_post.html", {"form": form, "show_header": True}) @login_required def myPosts(request): ''' List the user created posts ''' posts = Post.objects.filter(author=request.user) return render(request, "posts_list.html", {"posts": posts, "show_header": True}) def postDetails(request, pk): ''' List all posts in the dashboard and display the comments and likes ''' post = get_object_or_404(Post, pk=pk) comment = post.comments.all() likes = post.likes.count() user_has_liked = post.likes.filter(user=request.user).exists() if request.method == "POST": comment_form = CommentForm(request.POST) if comment_form.is_valid(): comment = comment_form.save(commit=False) comment.post = post comment.author = request.user comment.save() return redirect("posts:post-detail", pk=post.pk) else: comment_form = CommentForm() return render( request, "main_post.html", { "post": post, "comments": comment, "comment_form": comment_form, "likes": likes, "user_has_liked": user_has_liked, }, ) @login_required def like_post(request, pk): ''' Handle liking posts ''' post = get_object_or_404(Post, pk=pk) like, created = Like.objects.get_or_create(post=post, user=request.user) if not created: like.delete() return redirect("posts:post-detail", pk=post.pk)
from django.urls import path from .views import * app_name = "posts" urlpatterns = [ path("createpost/", create_post, name="create-post"), path("post//", postDetails, name="post-detail"), path("post/ /like/", like_post, name="like-post"), path("myposts/", myPosts, name="my-posts"), ]
इस सप्ताह, मुझे चुनौतियों का सामना करना पड़ा:
इन चुनौतियों के बावजूद, मैंने उपयोगकर्ता इंटरैक्शन को संभालने और मॉडलों के बीच संबंधों को प्रबंधित करने के लिए Django के ORM के साथ काम करने के बारे में बहुत कुछ सीखा।
और यह मेरा सरल ब्लॉग ऐप बनाता है। अधिक जानकारी और ऐप के लाइव डेमो के लिए मेरा Github देखें।
मैं अपने कौशल और ज्ञान को बेहतर बनाने के लिए एक और Django प्रोजेक्ट बनाने की योजना बना रहा हूं।
यदि आपके पास कोई विचार है कि काम करने के लिए एक अच्छा प्रोजेक्ट क्या है या Django प्रोजेक्ट पर सहयोग क्या है, तो कृपया बेझिझक एक टिप्पणी छोड़ें।
मेरी यात्रा पर अधिक अपडेट के लिए बने रहें!
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3