带有ajax的django实时cli

问题描述

我想创建实时cli 我正在发送带有输入(netmiko)的命令,我在文本 aria 中收到结果,但它不起作用 我的脚本:

<script type="text/javascript">
            $(document).('submit','#post-form',function(e)){
                e.preventDefault();
                $.ajax({
                    type:'POST',url:'cli_run',data:{
                        cmds:$('cmds').val(),csrfmiddlewaretoken:$('input[cmds=csrfmiddlewaretoken]').val(),},outputs: function(data){
                        $('h2').html(data);}});}
        </script> -->

这是我的模板:

div class="row">
        <div class="card col-12 col-md-6">
            <div class="card-header">
            <label> <h3>ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ Cli : </h3></label>
            </div>
            <br>
            <div class="card-body text-center">
            <form action="{% url 'cli_run' device.id%}" method="POST">
            {% csrf_token %}
            <textarea name="cmds" id="cmds" rows="10" cols="80"></textarea>
            <input type="submit" name="Submit">
            </form>
            </div>
        </div>



        <div class="card col-12 col-md-6">
            <div class="card-header">
            <label> <h3>output : </h3></label>
            </div>
            <br>
            <div class="card-body text-center">
            <textarea  rows="10" cols="80"> {% for i in outputs %} {{i}}     {% endfor %}    </textarea>
            </div>
        </div>

这是我的观点,我用'RTR'连接到decice,我用一个列表(输出)来显示结果

def cli_run(request,pk ):
    device = Device.objects.get(id=pk)

    RTR = {'ip': device.ipadress,'username': device.hostname,'password': 
     device.password,'device_type': 'cisco_ios',}
       net_connect = ConnectHandler(**RTR)
      output = net_connect.send_command(request.POST.get("cmds"))
      outputs.append(output)
    
    context = {'device':device,'output':output,'RTR':RTR,'outputs':outputs,"devices":devices}    
    return render(request,'accounts/cli_run.html',context)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)