Я пытаюсь динамически создавать 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"