یک توسعه‌دهنده

یک توسعه دهنده که بیشتر از توسعه،‌ فیلم می‌بینه و کتاب می‌خونه :)

نکته‌های جنگویی - بفرمایید فید

چهارشنبه, ۱۲ شهریور ۱۳۹۹، ۱۲:۴۷ ق.ظ

مطلب جدید نکته‌های جنگویی، ساختن RSS هست. اینکه RSS چی هست رو تو ویکی‌پدیا بخونید. و اما چرا خوبه؟ چون مردم میتونن (امروزه کمتر) لینک RSS شما رو توسط نرم‌افزارهای RSS بگیرن و مطالب جدید شما رو دریافت کنن. گرچه بعضی‌ها مثل زوم‌جی و ... میان خلاصه‌ای از مطلب رو میذارن که مردم برن مطلب کامل رو از وب‌سایتشون بخونن. خلاصه هر چی که هست چیز خوبیه :)).

پروژه‌ی داستان رو باز میکنم و در stories/feeds.py رو میسازم:

stories
├── admin.py
├── apps.py
├── feeds.py
├── forms.py
├── __init__.py
├── models.py
├── tasks.py
├── templates
│   └── stories
│       ├── add.html
│       ├── detail.html
│       └── index.html
├── tests.py
├── urls.py
└── views.py

کدهایی که داخل feeds.py قرار میدم:

from django.contrib.syndication.views import Feed
from django.template.defaultfilters import truncatewords, safe
from .models import Story


class LatestStoriesFeed(Feed):
	title = 'Read Stories'
	link = ''
	description = 'Read the short and good story'

	def items(self):
		return Story.objects.filter(status=True)[:30]

	def item_title(self, item):
		return item.title

	def item_description(self, item):
		return safe(truncatewords(item.body, 20))

	def item_link(self, item):
		return f'/{item.slug}/'

۳۰ داستان آخر که از هر کدوم ۲۰ کلمه رو نشون میدم و لینک مطلب رو هم میذاریم که بیان بقیه‌ی مطلب رو تو صفحه‌ی خود داستان ببینن.

و در نهایت یه URL براش درست میکنم (در stories/urls.py). البته اگه داخل A/urls.py هم باشه فرقی نمیکنه (تازه بهترم هست فکر میکنم). کلاس LatestStoriesFeed رو به urlها اضافه میکنم:

...
from .feeds import LatestStoriesFeed
...

و یک path براش درست میکنم:

urlpatterns = [
	...
	# feeds
	path('feed/rss', LatestStoriesFeed(), name='stories_feed'),


]

و حالا اگه به مسیر:

http://localhost:8000/feed/rss

برم؛ آخرین داستان‌ها رو میبینم که مشخص کردیم ۳۰ تا باشه.

 

خیلی ساده و سریع RSS ساختیم و به کاربرها تعارف میکنیم که بفرمایید RSS :).

 

پایان./

نظرات (۰)

هیچ نظری هنوز ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی

تمام حقوق مادی و معنوی این وبلاگ متعلق به وبلاگ سرزمین برنامه نویسی بوده و هر گونه کپی بردای بدون ذکر منبع غیرمجاز و از نظر ما حرام است