使用 Django 自动刷新 <div>

automatic refreshing <div> with django

我有一个表单,当它发布时 console.html 的内容会发生变化。为了刷新页面,我使用了以下代码,但这不会刷新 console.html

javascript

function autorefresh() {
        // auto refresh page after 1 second
        setInterval('refreshPage()', 1000);
}

function refreshPage() {
    var container = document.getElementById("console");
    container.innerHTML= '<object type="text/html" data="../../templates/snippets/console.html" ></object>';

   //this line is to watch the result in console , you can remove it later
    console.log("Refreshed");
}

index.html

<script>autorefresh()</script>
<div id="console" >

{% include 'snippets/console.html' %}

</div>

view.py

def index(request):
    if request.method == "GET":
        return render(request, 'index.html')
    if request.method == "POST":  # If the form has been submitted...
        form=InputForm(request)
        form.do_function()
        return render(request, 'index.html')

我在 jquery 的帮助下重写了 html:

<script type="text/javascript" src="{% static "js/jquery.js" %}"></script>
<script>
function autorefresh() {
        // auto refresh page after 1 second
        setInterval('refreshPage()', 1000);
}

function refreshPage() {
        $.ajax({
        url: '{% url 'console' %}',
        success: function(data) {
        $('#console').html(data);
        }
    });
}
</script>
.
.
.
<script>autorefresh()</script>
<div id="console" ></div>

view.py

def console(request):
    data=
    return render(request, 'snippets/console.html',{"data": data})

console.html

{% for line in data %}
{{ line }}
{% endfor %}

最后将控制台添加到 url。

urls.py

urlpatterns = [
    path('', views.index, name='index'),
    path('console', views.console, name='console'),
]

希望您不要花一天时间寻找解决方案:))