Могу ли я писать посты для личного сайта-блога 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"
Вернуться на верх