繁体   English   中英

Django从views.py以html显示

[英]Django display in html from views.py

我是Django的新手,请提供一些帮助。 我在views.py中有此代码

def display_meta(request):
    values = request.META.items()
    values.sort
    html = []
    for k, v in values:
        html.append('<tr><td>%s</td><td>%s</td></tr>' % (k, v))
    return HttpResponse('<table>%s</table>' % '/n'.join(html))

-------返回render(HttpResponse,'current_datetime.html',{'about':html})

def current_datetime(request):
    now = datetime.datetime.now()
    return render(request, 'current_datetime.html', {'current_date': now})

我添加了带有“ ------”的部分,但我不知道是否可以。 问题在这里,我该如何在html文件中显示返回HttpResponse以显示用户正在使用什么元。

{% extends "base.html" %}

{% block title %}The current time{% endblock %}

{% block content %}
<p>It is now {{ current_date }}.</p>
<p>You are using {{ HERE WILL BE DISPLAYED THE META FUNCTION, BUT HOW ??? }}</p>
{% endblock %}

{% block footer %}
 <hr>
 <p>Thanks for visiting my site.</p>
{% endblock %}

我不知道该怎么做。。。谢谢大家!

在settings.py中添加阅读这是什么意思

TEMPLATE_CONTEXT_PROCESSORS = (
    ...,
    'django.core.context_processors.request',

)

然后,加载您的自定义模板标签非常重要

{% extends "base.html" %}

# NEW LINE
{% load  custom_tags %}

{% block title %}The current time{% endblock %}

{% block content %}
    <p>It is now {{ current_date }}.</p>
    <p>You are using {{ request|extract_meta }}</p>
{% endblock %}

{% block footer %}
 <hr>
 <p>Thanks for visiting my site.</p>
{% endblock %}

创建名为extract_meta自定义模板标签, 这里是doc

在templatetags / custom_tags.py中:

from django import template

register = template.Library()

@register.filter(name="extract_meta")
def extract_meta(request):
    values = request.META.items()
    values.sort
    html = []
    for k, v in values:
        html.append('<tr><td>%s</td><td>%s</td></tr>' % (k, v))
    return '<table>%s</table>' % '/n'.join(html)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM