Нумерация колб в сочетании с запросом - PullRequest
0 голосов
/ 25 сентября 2018

В настоящее время я пытаюсь создать небольшое приложение для фляги на python, которое принимает CSV через панд и разбивает результаты на страницы.Я уже закончил процесс импорта набора данных с пандами, преобразования его в список словарей и разбивки результатов на таблицы с использованием flask_paginate.

Теперь я хотел бы расширить этот код, чтобы разрешить, например, запрос терминов в наборе данных (показать и разбить на страницы все результаты, где «Имя клиента» содержит «Барри»).Я осознаю, что мне нужно использовать поле ввода и обрабатывать пост-запрос, но я очень не уверен, как соединить все это вместе в индексном маршруте.

Любая помощь будет принята с благодарностью.

Код для app.py

from flask import Flask, render_template
from flask_paginate import Pagination, get_page_args
import pandas

app = Flask(__name__)
app.debug = True

df = pandas.read_csv('static/superstore.csv')
data = df.to_dict(orient = 'records')

def get_users(offset=0, per_page=20):

    return data[offset: offset + per_page]

@app.route('/')
def index():

    page, per_page, offset = get_page_args(page_parameter='page', per_page_parameter='per_page')

    total = len(data)

    pagination_users = get_users(offset=offset, per_page=per_page)

    pagination = Pagination(page=page, 
                            per_page=per_page, 
                            total=total,
                            css_framework='bootstrap4')

    return render_template('index.html',
                           data=pagination_users,
                           page=page,
                           per_page=per_page,
                           pagination=pagination)

Код для index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <title>flask-bootstrap example</title>
    <!-- Bootstrap -->
    <!-- Latest compiled and minified CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css">

    <link rel="stylesheet" type="text/css" href="static/main.css">
  </head>
  <body>
    <div class = "bg-primary">
    <div class = "container jumbotron jumbotron-fluid bg-transparent text-white">
      <h1 class = "display-4">Pagination Example</h1>

    </div>
  </div>
    <div class="container">
      <div class="table-responsive">
        <table class="table table-hover">
          <thead>
            <tr>
              <th>Order ID</th>
              <th>Order Date</th>
              <th>Profit</th>
              <th>Unit Price</th>
              <th>Order Quantity</th>
              <th>Customer Name</th>
              <th>Region</th>
            </tr>
          </thead>
          <tbody>
            {% for item in data %}
            <tr>
              <td>{{ item['Order ID'] }}</td>
              <td>{{ item['Order Date'] }}</td>
              {%if item['Profit'] > 0%}
                <td><span class ="badge badge-success">{{ item['Profit'] }}</span></td>
              {%else%}
                <td><span class ="badge badge-danger">{{ item['Profit'] }}</span></td>
              {%endif%}

              <td>{{ item['Unit Price'] }}</td>
              <td>{{ item['Order Quantity'] }}</td>
              <td>{{ item['Customer Name'] }}</td>
              <td>{{ item['Region'] }}</td>
            </tr>
            {% endfor %}
          </tbody>
        </table>
      </div>
      {{ pagination.links }}
    </div>
  </body>
</html>

Снимок экрана: Снимок экрана localhost: 5000 /

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