Есть ли способ установить атрибуты таблицы по ячейке в python flask? - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь динамически создавать html таблицы, используя python flask. Я знаю, что в документации flask (https://flask-table.readthedocs.io/en/stable/) говорится, что вы можете передавать атрибуты элементам td и th html, но это позволяет вам передавать вещи только на уровне столбца, используя Параметры td_html_attrs, th_attml_attrs и columns_html_attrs, а не на уровне ячейки. Например, если у меня есть 3 столбца, я могу установить только 3 разных атрибута td / th. Я ищу способ передать уникальные атрибуты td / th отдельным ячейкам в таблице.

Ниже приведен код python, который у меня есть прямо сейчас. Он создает проект flask с атрибутами onclick, которые go для соответствующих страниц, но, как вы можете видеть, если вы запустите его / откройте приложение flask в браузере (я использую chrome) на localhost : 5000 (порт по умолчанию), вы не можете указывать атрибуты конкретной ячейки, только столбец.

from flask import Flask, render_template, Markup
from flask_table import Table, Col
app = Flask(__name__)

d_tda = {"onclick":"location.href='https://google.com';"}
d_tdb = {"onclick":"location.href='https://yahoo.com';"}
d_tdc = {"onclick":"location.href='https://bing.com';"}

class ItemTable(Table):
    a = Col("a",td_html_attrs=d_tda)
    b = Col("b",td_html_attrs=d_tdb)
    c = Col("c",td_html_attrs=d_tdc)

class Item(object):
    def __init__(self,a,b,c):
        self.a= a
        self.b= b
        self.c= c

@app.route('/')
def results():
    items = [Item('r1c1','r1c2','r1c3'),
             Item('r2c1','r2c2','r2c3'),
             Item('r3c1','r3c2','r3c3')]

    table = ItemTable(items) # items will be a list of item objects, each item will create a row in the table

    return render_template("results.html", table=Markup(table.__html__()))

if __name__ == '__main__':
    app.run(debug=True)

^ Этот python файл (назовите его app.py) должен находиться в том же в качестве папки с именем «templates», и эта папка «templates» должна содержать файл с именем «results. html», который будет содержать следующее:

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    {{ table }}
</body>
</html>

вы можете затем запустить приложение из терминал / командная строка в каталоге, в котором находится файл app.py, со следующим:

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