import sys import os import requests import datetime import arrow import json from simplejson.errors import JSONDecodeError from django.core.management.base import BaseCommand from rowers.models import BlogPost from django.utils import timezone PY3K = sys.version_info >= (3, 0) class Command(BaseCommand): def handle(self, *args, **options): blogs_json = [] try: response = requests.get( 'https://analytics.rowsandall.com/wp-json/wp/v2/posts?per_page=3') if response.status_code == 200: try: blogs_json = response.json() except JSONDecodeError: try: blogs_json = json.loads(response.text) except JSONDecodeError: blogs_json = [] else: blogs_json = [] except ConnectionError: pass if blogs_json: _ = BlogPost.objects.all().delete() for postdata in blogs_json[0:3]: title = postdata['title']['rendered'] link = postdata['link'] date = timezone.now() blogpost = BlogPost( link=link, date=date, title=title ) blogpost.save() self.stdout.write(self.style.SUCCESS( 'Successfully processed blog posts'))