HTML-шаблон форматирования не работает - PullRequest
0 голосов
/ 29 апреля 2018

Пожалуйста, посмотрите на страницу:

https://bokeh.pydata.org/en/latest/docs/reference/models/widgets.tables.html#bokeh.models.widgets.tables.HTMLTemplateFormatter

Я пытался использовать этот форматер для моей таблицы данных, но у меня возникла проблема: местоположение файла таблицы добавляется перед фактической ссылкой.

Как создать URL-ссылку с форматером, который правильно перенаправляет на целевую страницу?


EDIT:

Вот код, который я использую: (это пакет bokeh от python):

from bokeh.io import output_file, show
from bokeh.layouts import widgetbox
from bokeh.models import ColumnDataSource
from bokeh.models.widgets import DataTable, DateFormatter, TableColumn, HTMLTemplateFormatter
from datetime import datetime
from pandas import Timestamp

start, end = datetime(2018,4,18), datetime(2018,4,18,23,59)

input = {
        'datetime': [Timestamp('2018-04-18 00:34:16')],
        'event': ['Barbara Bush, former US First Lady, 1925-2018'],
        'url': ['https://www.ft.com/content/336e7f52-4189-11e8-93cf-67ac3a6482fd']}


output_file("data_table.html")

source = ColumnDataSource(input)

columns = [
        TableColumn(
            field="datetime", 
            title="Datetime", 
            width = 50, 
            formatter = DateFormatter(format = '%Y-%m-%d %H:%M')),
        TableColumn(
            field='event', 
            title='Event',
            width = 150,
            formatter =  HTMLTemplateFormatter(template = '<a href=”<%= url %>”><%= value %></a>'))]


data_table = DataTable(source=source, columns=columns, width=1000, height=1000)

show(widgetbox(data_table))

Это создаст следующую таблицу: enter image description here

На панели проверки вы видите, что ссылка верна.

Однако при нажатии на него он перенаправляется на страницу:

enter image description here

1 Ответ

0 голосов
/ 29 апреля 2018

Это потому, что значение href не является действительным URL, поэтому оно рассматривается как путь относительно вашего домена. Добавьте еще одну косую черту:

https://www.google.com/search

Вместо

https:/www.google.com/search

Во втором примере символы «двойных кавычек» вокруг атрибута href являются более стилизованными версиями двойных кавычек и не являются допустимым HTML. Используйте это вместо:

HTMLTemplateFormatter(template = '<a href="<%= url %>"><%= value %></a>'))]
...