Py学习  »  Django

如何将自定义HTML元素和图像添加到Django的博客中?

Abhishek Kumar • 4 年前 • 490 次点击  

我正试图在Django创建一个博客。大多数可用的教程和示例只显示从数据库中检索一些内容,并在预定义的HTML结构上动态显示这些内容。

在研究了一些解决方案之后,我在Django找到了一个叫做flatpages的东西,它提供了编写HTML的功能。但它建议使用它来了解我们并与我们联系。我应该用这个吗?

我想这样做,因为我可以为每个博客写我自己的HTML数据,并添加一些图片,这样HTML的结构就不会在每个博客中相似。

例如,在WordPress的情况下,它允许用户完全编写博客的每个部分,但标题部分除外,而且HTML的结构并不总是恒定的。

我想要这样的功能。请帮忙。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38023
 
490 次点击  
文章 [ 3 ]  |  最新文章 4 年前
Resley Rodrigues
Reply   •   1 楼
Resley Rodrigues    4 年前

有很多包已经这样做了。你可以参考 Django Packages 选一个最适合你需要的。

Mezzanine 是最常见的一种。我个人没有用过。
我看到了 Django-cms 在我以前的工作中被使用过。它很强大,但我 个人 不太喜欢。

如果你想创建自己的CMS,你可以选择一个非常基本的结构,比如

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)

给用户一个所见即所得的编辑器 CKEditor . 如果用户想要包含图像,只需使用其URL即可。如果他们想上传,给他们一个模式或其他页面来上传图片,并将图片链接复制到HTML标记中。

hendrikschneider
Reply   •   2 楼
hendrikschneider    4 年前

你要找的是上传图片并将它们作为HTML嵌入到你的内容域中。这可以使用Wysiwyg编辑器(如Keckeditor)来完成。在CK中,您可以编写文本、格式化文本和上传文件。您可以使用Django Keckeditor为您进行重物提升: https://github.com/django-ckeditor/django-ckeditor

然后,在模板中,必须使用安全筛选器呈现内容,以便将内容呈现为HTML:

    {{ post.content |safe }}
Mahesh
Reply   •   3 楼
Mahesh    4 年前

您尝试过使用静态目录吗?它存储静态内容,如css、image等。创建静态内容并将其与 BASE_DIR 在settings.py文件中。这里给出了完整的解释。 https://docs.djangoproject.com/en/2.2/howto/static-files/