将 Html 从模型/数据库和 jinja 中的 jinja 传递给 Jinja?

Posted

技术标签:

【中文标题】将 Html 从模型/数据库和 jinja 中的 jinja 传递给 Jinja?【英文标题】:Passing Html to Jinja from Models/DB and jinja in jinja? 【发布时间】:2019-03-18 11:01:53 【问题描述】:

所以我正在为自己编写一个个人网站,我不想从视图和 URL 中添加每个页面。我正在尝试制作一个非常动态的网站,管理员可以从 /admin 中添加页面

但现在的问题是当我尝试通过 jinja 模板从我的数据库中放入 jinja 或 html 时。 Jinja 将它们视为 str 并直接输出它们。

我正在尝试将 html 和 jinja 放入 jinja bcs 我想在管理页面中创建一个页面编辑器,并从那里添加包含大量图片和内容的页面,而无需编码。也许还有另一种方法可以做到,然后告诉我怎么做。

我的英语很差,但代码可以解释一切(我会用#python 注释的东西翻译土耳其语,以使其更容易理解:

观看次数:

  from django.shortcuts import render
    from umut.models import *

    # Create your views here.

    def sayfa#page(request, sayfalinki#pagelink stands for pagename):
    içerik#content = Sayfalar.objects.get(baslik=sayfalinki)
    return render(request, "umut/umut-şablon.html" , "içerik":içerik)

型号:

from django.db import models

# Create your models here.
class Sayfalar(models.Model):
 baslik#title = models.CharField(max_length=15)
 title = models.CharField(max_length=30)
 icerik#content = models.TextField(max_length=5000)

网址:

from django.urls import path, include
from . import views

urlpatterns = [
    #path('', views.anasayfa, name= 'anasayfa#mainpage'),
    path('<str:sayfalinki>', views.sayfa)
]

模板:

<!DOCTYPE html>
<html>

    <head>
        % load static %
        <link rel="stylesheet" type="text/css" href="% static "umut/umut-style.css" %">
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>içerik.title</title>
    </head>

    <body>
        <header>
            <h1 class="anabaslik">Umut Özsoy</h1>
        </header>
        <nav>
            % for i in sayfalar %
                <a href="i.link">i.isim</a>
            % endfor %
        </nav>
        <section>
        içerik.icerik
        </section>

    </body>

</html>

【问题讨论】:

【参考方案1】:

将 html 传递给 jinja 模板变量 -->

variable|safe #jinja's safe filter

制作安全区域/街区 -->

%autoescape off% blabla %endautoescape%

详细信息:Django Doc Link

jinja 变量中的 jinja 变量仍然不起作用。

【讨论】:

以上是关于将 Html 从模型/数据库和 jinja 中的 jinja 传递给 Jinja?的主要内容,如果未能解决你的问题,请参考以下文章

渲染JSON而不替换Jinja中的字符[重复]

从 Django Jinja 模板中删除撇号?

如何在 jinja 2 - Flask 中访问会话变量

使用 Jinja 将数据作为 JSON 对象从 Python 发送到 Javascript [重复]

[学习记录]jinja2模板语法

使用 Flask 和 Jinja2 单击时无法加载模板 HTML [重复]