Могу ли я писать посты для личного сайта-блога Django в статических html-файлах?
Я довольно новичок в Django и экспериментировал, создавая свой личный блог.
Общий вопрос
Я понял, что могу задать структуру записей блога в models.py и использовать администраторский сайт для написания своих блогов. Однако, что если я хочу писать свои блоги в необработанных HTML файлах, хранящихся, например, в my-website/blog/posts/<list-of-html-blogs>, а затем загружать эти файлы в базу данных и показывать на сайте. Есть ли стандартный способ сделать это?
Мой первоначальный подход заключается в создании функции Python, которая считывает HTML файлы как строки и загружает эти файлы в базу данных вручную, т.е. используя что-то вроде blog.models.Post(title=my_title, content=html_as_string). Каждый раз, когда я буду писать новый блог, я буду вызывать эту функцию для загрузки определенного html-файла. Однако я нашел очень мало информации в Интернете о том, является ли это правильным подходом.
Обзор блога Django
Если полезно, ниже я показываю, как выглядит models.py и views.py моего блога в настоящее время.
models.py
from django.db import models
STATUS = (
(0, "draft"),
(1, "published")
)
class Post(models.Model):
title = models.CharField(max_length=200, unique=True)
slug = models.SlugField(max_length=200, unique=True, null=True)
date = models.DateTimeField()
content = models.TextField(blank=True)
status = models.IntegerField(choices=STATUS, default=0)
class Meta(object):
ordering = ["-date"]
def __str__(self):
return self.title
views.py
from django.shortcuts import render
from django.http import HttpResponse
from django.views import generic
from .models import Post
class RecentPosts(generic.ListView):
model = Post
context_object_name = "postlist"
queryset = Post.objects.all()[:5]
template_name = "blog/index.html"
class SinglePost(generic.DetailView):
model = Post
template_name = "blog/post.html"
class AllPosts(generic.ListView):
model = Post
context_object_name = "posts"
queryset = Post.objects.all()
template_name = "blog/all-posts.html"