Странное поведение Django при использовании Dygraph - PullRequest
0 голосов
/ 28 октября 2018

У меня есть сервер, написанный на django, и я хочу показать некоторый график, используя dygraph на шаблоне.Я написал одно представление и связанный с ним URL, а также передал некоторые переменные через контекст в шаблон.Используя эти переменные контекста, я хочу показать график.Но проблема в том, что график не отображается, и в URL-адресах наблюдается странное поведение.Ниже я публикую шаблон, URL-адрес и код просмотра.

@login_required
def profile(request, mid):
    user = request.user
    context = {}

    delta_T = 1000
    data = subprocess.check_output("tail -n {0} {1}".format(
                                    delta_T, filename
                                    ), 
                                    shell=True)
    data = data.split("\n".encode())

    heatcsv = ""
    fancsv = ""
    tempcsv = ""

    plot = []
    for t in range(len(data)):
        line = data[t].decode("utf-8")
        entry = line.strip().split(" ")
        try:
            plot.append([int(float(i)) for i in entry[0:-1] \
                                                + [float(entry[-1])]])
            heatcsv += "{0},{1}".format(t+1, entry[1])
            fancsv += "{0},{1}".format(t+1,entry[2])
            tempcsv += "{0},{1}".format(t+1, entry[3])
        except:
            continue

    plot = zip(*plot)
    context["mid"] = mid
    context["delta_T"] = delta_T
    context["heat"] = heatcsv
    context["fan"] = fancsv
    context["temp"] = tempcsv        

    return render(request,"dashboard/profile.html",context)

Код шаблона:

{% load staticfiles %}
{% block title %}
    Dashboard - Profile
{% endblock %}
{% block headerfiles %}

        <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js" type="text/javascript"></script>
        <script type="{% static 'js/jquery-ui.js' %}"></script> 
        <link rel="stylesheet" type="text/css" href="{% static 'css/jquery.datetimepicker.css' %}"/>
        <link rel="stylesheet" href="{% static 'css/bootstrap.min.css' %}"/>
        <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/dygraph/2.1.0/dygraph.min.css" />
        <script src="//cdnjs.cloudflare.com/ajax/libs/dygraph/2.1.0/dygraph.min.js"></script>
{% endblock %}
{% block main %}
    <div class = "row">
        <div class = "span12">
            <h2>{{ mid }} <small>Profile for past {{ delta_T }} instances</small></h2>
            <h3>Heat</h3>
            <div id="heat" style="width:800px; height: 80px"></div>
            <h3>Fan</h3>
            <div id="fan" style="width:800px; height: 80px"></div>
            <h3>Temperature</h3>
            <div id="temp" style="width:800px; height: 80px"></div>
        </div>
    </div>
    {{heat}}
    {{fan}}
    {{temp}}
    <script>
    (function(){
        var h = new Dygraph(
            document.getElementById("heat"),
            "{{ heat }}",
            {
                valueRange: [0,100]
            }
        );
        var f = new Dygraph(
            document.getElementById("fan"),
            "{{ fan }}",
            {
                valueRange: [0,100]
            }
        );
        var t = new Dygraph(
            document.getElementById("temp"),
            "{{ temp }}"
        );
        console.log(h);
    })();
</script>
{% endblock %}

Urlpattern:

url(r'^moderator/profile/(?P<mid>\d+)/$',views.profile, 
            name='profile'),

Я также включаю выводв терминале, когда я посещаю вышеуказанный URL.Я не могу понять, что именно не так в моем коде.Может кто-то указать, где ошибка.

Вывод терминала:

Not Found: /moderator/profile/1/1,29.72,29.73,29.74,29.75,29.76,29.87,30.28,30.39,30.410,30.711,30.812,31.213,31.414,31.615,31.816,31.917,32.218,32.419,32.520,32.721,33.022,33.123,33.224,33.325,33.426,33.627,33.728,33.829,33.930,33.931,34.032,34.133,34.134,34.335,34.336,34.437,34.438,34.539,34.440,34.541,34.542,34.743,34.644,34.745,34.746,34.847,34.848,34.849,34.850,35.051,34.852,35.053,35.054,35.055,35.056,35.157,35.158,35.059,35.160,35.161,35.162,35.163,35.164,35.165,35.266,35.267,35.268,35.169,35.270,35.271,35.272,35.273,35.274,35.275,35.276,35.277,35.278,35.379,35.380,35.381,35.282,35.383,35.384,35.385,35.386,35.387,35.388,35.389,35.390,35.491,35.392,35.393,35.494,35.495,35.496,35.497,35.598,35.499,35.4100,35.4101,35.5102,35.4103,35.5104,35.5105,35.5106,35.4107,35.5108,35.5109,35.5110,35.5111,35.5112,35.5113,35.5114,35.5115,35.5116,35.5117,35.5118,35.7119,35.5120,35.7121,35.5122,35.7123,35.7124,35.7125,35.7126,35.7127,35.7128,35.8129,35.7130,35.8131,35.7132,35.7133,35.7134,35.8135,35.8136,35.7137,35.8138,35.7139,35.7140,35.7141,35.7142,35.7143,35.8144,35.8145,35.8146,35.7147,35.8148,35.7149,35.8150,35.7151,35.7152,35.8153,35.8154,35.9155,36.0156,35.9157,36.0158,36.1159,36.2160,36.2161,36.2162,36.4163,36.5164,36.6165,36.6166,36.7167,36.8168,36.8169,36.9170,36.8171,36.9172,36.9173,37.0174,37.2175,37.2176,37.2177,37.3178,37.3179,37.3180,37.3181,37.3182,37.4183,37.4184,37.5185,37.5186,37.4187,37.4188,37.5189,37.5190,37.5191,37.5192,37.5193,37.5194,37.6195,37.6196,37.5197,37.6198,37.6199,37.6
[28/Oct/2018 23:15:27] "GET /moderator/profile/1/1,29.72,29.73,29.74,29.75,29.76,29.87,30.28,30.39,30.410,30.711,30.812,31.213,31.414,31.615,31.816,31.917,32.218,32.419,32.520,32.721,33.022,33.123,33.224,33.325,33.426,33.627,33.728,33.829,33.930,33.931,34.032,34.133,34.134,34.335,34.336,34.437,34.438,34.539,34.440,34.541,34.542,34.743,34.644,34.745,34.746,34.847,34.848,34.849,34.850,35.051,34.852,35.053,35.054,35.055,35.056,35.157,35.158,35.059,35.160,35.161,35.162,35.163,35.164,35.165,35.266,35.267,35.268,35.169,35.270,35.271,35.272,35.273,35.274,35.275,35.276,35.277,35.278,35.379,35.380,35.381,35.282,35.383,35.384,35.385,35.386,35.387,35.388,35.389,35.390,35.491,35.392,35.393,35.494,35.495,35.496,35.497,35.598,35.499,35.4100,35.4101,35.5102,35.4103,35.5104,35.5105,35.5106,35.4107,35.5108,35.5109,35.5110,35.5111,35.5112,35.5113,35.5114,35.5115,35.5116,35.5117,35.5118,35.7119,35.5120,35.7121,35.5122,35.7123,35.7124,35.7125,35.7126,35.7127,35.7128,35.8129,35.7130,35.8131,35.7132,35.7133,35.7134,35.8135,35.8136,35.7137,35.8138,35.7139,35.7140,35.7141,35.7142,35.7143,35.8144,35.8145,35.8146,35.7147,35.8148,35.7149,35.8150,35.7151,35.7152,35.8153,35.8154,35.9155,36.0156,35.9157,36.0158,36.1159,36.2160,36.2161,36.2162,36.4163,36.5164,36.6165,36.6166,36.7167,36.8168,36.8169,36.9170,36.8171,36.9172,36.9173,37.0174,37.2175,37.2176,37.2177,37.3178,37.3179,37.3180,37.3181,37.3182,37.4183,37.4184,37.5185,37.5186,37.4187,37.4188,37.5189,37.5190,37.5191,37.5192,37.5193,37.5194,37.6195,37.6196,37.5197,37.6198,37.6199,37.6 HTTP/1.1" 404 14396

Я думаю, что django добавляет все показания в URL, а не показывает его в шаблоне в виде графика..

...