Оптимизация сбора данных - PullRequest
0 голосов
/ 01 декабря 2018

В таблице много записей (450 тыс. Записей), как их получить быстрее, чем таким образом?

def index(request):
params = Parameters.objects.all()
return render(request, "core/data_table.html", {"params": params})

Я привожу таблицу на html:

{% extends 'base.html' %}

{% block content %}
   <html>
<body>
{% if params.count > 0 %}
    <h2>Data</h2>
    <table>
        <tr><th>Id</th><th>par_time</th><th>par_recipe</th><th>par_machine</th><th>par_fa</th><th>par_ag_typ</th><th>par_rollennr</th>
        <th>par_def_id</th><th>par_name</th><th>par_value</th></tr>
        {% for person in params %}
        <tr><td>{{ params.id }}</td><td>{{ params.par_time }}</td><td>{{ params.par_recipe }}</td><td>{{ params.par_machine }}</td>
        <td>{{ params.par_fa }}</td><td>{{ params.par_ag_typ }}</td><td>{{ params.par_rollennr }}</td><td>{{ params.par_def_id }}</td>
        <td>{{ params.par_name }}</td><td>{{ params.par_value }}</td></tr>
        {% endfor %}
    </table>
    {% endif %}
</body>
</html>
<p><a href="{% url 'home' %}">Return to home</a></p>
{% endblock %}

1 Ответ

0 голосов
/ 01 декабря 2018

1- Первое решение - передать только те значения, которые вы хотите, обратно в шаблон.основываясь на том, что я вижу в вашем коде, вы используете id, par_time, ..., par_value, поэтому просто передайте эти значения шаблону не всем объектам Python.как это:

 Parameters.objects.all().values('id', 'par_time', ....

этот метод более оптимизирован, чем просто передача объектов Python.

2- Используйте нумерацию страниц в шаблоне django.Вам не нужно загружать все данные в таблицу (на стороне пользователя).Разбейте все свои данные и передайте, например, каждые 10 элементов на страницу.Есть много документов о том, как использовать нумерацию страниц в Django.Вот список приложений нумерации страниц для использования в вашем проекте django.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...