J'essaye de créer un blog dans Django. La plupart des didacticiels et exemples disponibles montrent simplement la récupération du contenu de la base de données et son affichage dynamique sur la structure HTML prédéfinie.
Après avoir cherché une solution, j'ai trouvé quelque chose appelé flatpages dans Django qui fournit la possibilité d'écrire du HTML. Mais il est recommandé de l'utiliser pour les pages À propos de nous et Contactez-nous. Dois-je l'utiliser?
Je veux le faire car je peux écrire mes propres données HTML pour chaque blog et ajouter des images afin que la structure du HTML ne soit pas similaire dans chaque blog.
Par exemple, dans le cas de WordPress, cela permet à l'utilisateur d'écrire complètement chaque partie du blog sauf la partie en-tête et la structure du HTML n'est pas toujours constante.
Je veux une telle fonctionnalité. Veuillez aider.
3 Réponses :
Avez-vous essayé d'utiliser le répertoire statique? Il stocke le contenu statique comme CSS, Image, etc. Créez le Static et joignez-le au BASE_DIR dans le fichier settings.py. Une explication complète est donnée ici. https://docs.djangoproject.com/en/2.2/howto/static -fichiers /
Oui, j'ai traversé. il s'agit simplement de gérer des fichiers statiques comme CSS et JavaScript. Si vous êtes familier avec Wordpress ou consultez certains blogs courants, vous comprendrez ce que je demande.
Ce que vous recherchez, c'est de télécharger des images et de les intégrer au format HTML dans votre champ de contenu. Cela peut être fait à l'aide d'un éditeur WYSIWYG tel que CKEditor. Dans CK, vous pouvez écrire votre texte, le formater et télécharger des fichiers. Vous pouvez utiliser django-ckeditor pour faire le gros du travail à votre place: https://github.com/ django-ckeditor / django-ckeditor
Dans votre modèle, vous devez ensuite rendre votre contenu avec un filtre sécurisé afin que le contenu soit rendu au format HTML:
{{ post.content |safe }}
Il existe un tas de paquets qui font déjà cela. Vous pouvez vous référer aux Packages Django et choisir celui qui correspond le mieux à vos besoins.
Mezzanine est l'une des plus courantes. Personnellement, je ne l'ai pas utilisé.
J'ai vu Django-cms utilisé dans l'un de mes emplois précédents. C'était assez puissant, mais je ne l'ai personnellement pas beaucoup aimé.
Si vous souhaitez créer votre propre CMS, vous pouvez opter pour une structure très basique comme
class BlogImage(models.Model):
image = models.ImageField()
alt_text = models.CharField(max_length=128)
class BlogPost(models.Model):
title = models.CharField(max_length=512)
content = models.TextField() # be sure to validate that this does not contain bad code
tags = models.ManyToMany(Tag)
Donnez aux utilisateurs un éditeur WYSIWYG comme CKEditor . Si les utilisateurs souhaitent inclure des images, il leur suffit d'utiliser l'URL. S'ils veulent télécharger, donnez-leur une page modale ou une autre page pour télécharger l'image et copiez le lien vers l'image dans le balisage HTML
Merci mec. C'est ce que je cherchais. Mais pouvez-vous s'il vous plaît me dire une autre chose que CKEditor serait formidable de donner aux utilisateurs, mais si je veux écrire mon propre contenu HTML pour chaque blog et faire toutes sortes de choses manuellement, puis-je le faire?