본문 바로가기

portfolio

Django + Postgresql (ORM에서 searchVector를 이용하여 모델의 여러 필드검색), RSS feed 제작

1.SearchVector 객체를 이용해 제목내용에 포함된 단어를 검색 할 수 있다.

게시글 제목과 내용이 있는 디테일페이지

 
 
 
 
1-1. 명령어 python manage.py shell  orm으로 'django'를 검색하고 있다. 이때 searchVector를 이용하여 여러필드를 검색할 수 있다.

 
 
 
 
 
 
2. RSS feed 웹피드는 최근 업데이트 된것을 보기좋게 보여주는 XML

import markdown
from django.contrib.syndication.views import Feed
from django.template.defaultfilters import truncatewords_html
from django.urls import reverse_lazy
from .models import Post 

class LatestPostFeed(Feed):
  title = 'My blog'
  link = reverse_lazy('blog:post_list')
  description = 'New posts my blog.'

  def items(self):
    return Post.published.all()[:5]
  
  def item_title(self, item):
    return item.title
  
  def item_description(self,item):
  	# truncatewords_html는 30개넘는 단어는 잘라냄
    return truncatewords_html(markdown.markdown(item.body), 30)
  
  def item_pubdate(self, item):
    return item.publish

 
제목, 설명,게시일을 반환하고 총 5개를 보여준다. reverse_lazy()는 reverse()함수의 지연연산버전이다.
 
 
reverse_lazy() 의 자세한 내용은 블로그 참조(https://yuuraa.github.io/djange/reverse_lazy/python/django-reverse-lazy/)

 

Django의 reverse_lazy vs. reverse

Django urls의 함수들 Django에서는 url을 편안하게 사용할 수 있는 기능을 제공한다

yuuraa.github.io

 
 
RSS리더로 XML링크를 붙여넣은 결과화면 최근 업데이트 게시글이 보인다. 

 
 

게시글을 클릭하면 댓글등 자세히 볼 수 있다.



책을 참고하였습니다.
https://m.yes24.com/Goods/Detail/125101496

 

예제로 배우는 Django 4 - 예스24

Django 연습에 최적! 프로젝트 4개로 배우는 Django 4Django를 익히는 제일 좋은 방법은 무엇일까? 이 책에서는 ‘좋은 예제 많이 만들어 보기’를 그 답으로 정했다. 블로그, 소셜 웹사이트, 온라인 상

m.yes24.com