Executando verificação de segurança...
1

Python - Django framework, quando cria a base de dados é facil de manutenir devido ao admin criado automaticamente pelo framework.
Se for fazer ele bem simples, é super rapido, faz um CRUD e bota online em uma VPS , domínio e se quiser um email também.

from django.views.generic import ListView, CreateView, UpdateView, DeleteView
from .models import Post

class IndexView(ListView):
    template_name = "pages/index.html"
    model = Post

class NewPost(CreateView):
    template_name = "pages/new_post.html"
    model = Post
    fields = '__all__'  # ou especifique os campos desejados

class EditPost(UpdateView):
    template_name = "pages/edit_post.html"
    model = Post
    fields = '__all__'  # ou especifique os campos desejados

class DeletePost(DeleteView):
    template_name = "pages/delete_post.html"
    model = Post
    success_url = '/'  # URL para redirecionar após excluir o post

Carregando publicação patrocinada...
0

O backend pode ser assim:

import uuid
from django.db import models
from django.contrib.auth.models import User
from ckeditor.fields import RichTextField

def image_path(instance,filename):
    ext = filename.split("/")[-1]
    filename = f"{uuid.uuid4()}.{ext}"
    return f"banners/{filename}"}
    
class Base(models.Model):
    create_at = models.DateTimeField(auto_now_add=True)
    edited_at = models.DateTimeField(auto_now=True)
    is_active = models.BooleanField(default=True)


class Posts(Base):
    #Ou utilizar ManyToMany
    #author = models.ManyToManyField(User)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    title = models.CharField(max_length=255)
    description = RichTextField()
    banner = models.ImageField(upload_to=image_path, blank=True, null=True)
   
   E dai vai , pode colocar várias coisas.