从Models / DB和Jinja中的Jinja将HTML传递给Jinja?

时间:2018-10-13 11:54:42

标签: django django-models django-templates django-views jinja2

因此,我正在为自己编写一个个人网站,我不想从视图和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 个答案:

答案 0 :(得分:0)

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

{{variable|safe}} #jinja's safe filter

制作安全区域/街区->

{%autoescape off%} blabla {%endautoescape%}

详细信息:Django Doc Link

jinja变量中的jinja变量仍然无法正常工作。