将python变量导入HMTL

时间:2018-12-05 09:59:02

标签: python html django python-3.x

我有一个处理wifi凭据的html页面,并将其写入树莓派3上的interfaces文件。html文件post_list_three.html如下所示

    {% extends 'device_interfaces/base.html' %}


{% block content %}
    <h2>Static Configuration Page</h2>

    <form method="POST" class="post-form">{% csrf_token %}
     {{ form.as_p }}
     <button type="submit" class="save btn btn-default">Save</button>
    </form>

{% endblock %}

base.html如下

    {% load static %}

<html>
    <body>
        <div class="page-header">
            <a href="{% url 'post_list_three' %}" class="top-menu"><span class="glyphicon glyphicon$
            <h1>Wi-Fi Static Configuration</h1>
        </div>

        <div class="content container">
            <div class="row">
                <div class="col-md-8">
                    {% block content %}
                    {% endblock %}
                </div>
            </div>
        </div>

    </body>

</html>

我有一个python文件tech_scripts.py,该文件写入interfaces文件并检查给定的凭据是否正确才能连接到wifi。用于检查wifi连接的代码在tech_scripts.py中称为一个函数,其代码段如下

def CheckConnection():
    ps = subprocess.Popen(['iwconfig'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    try:
        output = subprocess.check_output(('grep', 'ESSID'), stdin=ps.stdout).decode()
        status = output.split('ESSID:')[1].split('/')[0]
        if status == 'off':
            print("Wi-Fi not connected")
            return False
        else:
            print("Wi-Fi connected")
           return True
    except subprocess.CalledProcessError:
        # grep did not match any lines
       print("No wireless networks connected")
       return False

我想检索以上函数返回的内容(即True或False),并使用上面的post_list_three.html文件中的内容。

如何将此函数返回的内容导入html文件,以便在凭据不正确(即函数返回False)的情况下操纵页面重新加载?

修改

下面的views.py

import subprocess
from django.shortcuts import render

from .models import ConfigInfo
from .forms import ConfigInfoForm

def post_list_three(request):
    from .models import ConfigInfo
    ConfigInfo.objects.all().delete()
    if request.method =="POST":
       form =ConfigInfoForm(request.POST)
       if form.is_valid():
           ConfigInfo=form.save(commit=False)
           ConfigInfo.save()
           subprocess.Popen(["python3", "/home/pi/tutorial/device_interfaces/tech_scripts.py","-m"])
    else:
        form=ConfigInfoForm()
    return render(request, 'device_interfaces/post_edit.html', {'form':form})

0 个答案:

没有答案