Pandas Table mit Link zu HTML: Link wird falsch gerendert

Django, Flask, Bottle, WSGI, CGI…
Antworten
brave
User
Beiträge: 24
Registriert: Mittwoch 24. Februar 2016, 18:30

Hallo,

Ich möchte in eine Zelle einer Pandas Tabelle einen gewöhnlichen HTML-Link einfügen, die Tabelle anschließend zu HTML rendern und in einem Django Template anzeigen lassen. Der Link ist ein Querystring. Der folgende Code funktioniert grundsätzlich, aber der HTML-Query-String wird nicht korrekt gerendert. Ich versuche schon einen Tag lang herauszufinden, wie man den Link im Python Code konstruieren muß, damit im HTML ein gültiger Link rauskommt. Im HTML-Quellcode fehlt hier immer ein Teil des Links und der schließende </a> Tag. Warum?
Quellcode-Ergebis: http://imgur.com/a/o95mZ

views.py

Code: Alles auswählen

def test(request):

    table = pd.DataFrame({'Link': ['']})

    # Parameter, die in den Link eingebaut werden
    num1 = '12345bla'
    num2 = 'bla67890'

    # Hier wird der Link gebaut
    link = f'<a href="/pdf/?number={num1}&mdate={num2}">PDF</a>'
    # Das Komische: Mit nur einem Parameter geht es.
    # link = f'<a href="/pdf/?number={num1}">PDF</a>'

    # Hier wird er in die Tabelle eingesetzt
    table.set_value(index=0, col='Link', value=link)
    
    # Und hier wird die Tabelle zu HTML gerendert, aber mit nem nicht funktionierenden Link. Warum?
    htmltable = table.to_html(index=False, border=1, justify='left', escape=False)

    return render(request, 'test.html', {'table': htmltable})
test.html (template)
[codebox=html5 file=Unbenannt.html]<!DOCTYPE html>
<html>
<head></head>

<body>

{% autoescape off %}
{{ table }}
{% endautoescape %}
</body>
</html>[/code]

Das Codebeispiel ist natürlich wieder auf ein Minimum reduziert, um das Problem darzustellen. Später soll eine riesige Tabelle mit tausenden Links generiert werden.
BlackJack

Das hier ist schuld:

Code: Alles auswählen

In [17]: pd.get_option('display.max_colwidth')
Out[17]: 50
Es gibt auch eine Funktion zum setzen und -1 bedeutet bei der Einstellung ”unendlich”.
brave
User
Beiträge: 24
Registriert: Mittwoch 24. Februar 2016, 18:30

Ja, da kann ich ja lange probieren.
Besten Dank, you made my day.
Antworten