Czy można osadzić wyrenderowane dane wyjściowe HTML w wyjściu IPython?
Jednym ze sposobów jest użycie
from IPython.core.display import HTML
HTML('<a href="http://example.com">link</a>')
lub (wielowierszowy alias komórki IPython)
%%html
<a href="http://example.com">link</a>
Które zwracają sformatowany link, ale
- To łącze nie otwiera przeglądarki ze stroną internetową z poziomu konsoli . Notebooki IPython obsługują jednak uczciwe renderowanie.
- Nie wiem, jak renderować
HTML()
obiekt w, powiedzmy, liście lubpandas
wydrukowanej tabeli. Możesz to zrobićdf.to_html()
, ale bez tworzenia linków w komórkach. - To wyjście nie jest interaktywne w konsoli PyCharm Python (ponieważ nie jest to QT).
Jak mogę przezwyciężyć te niedociągnięcia i uczynić wyjście IPython bardziej interaktywnym?
python
html
ipython
jupyter-notebook
Anton Tarasenko
źródło
źródło
HTML()
robi, ale nadal nie mogłem rozwiązać punktów 1 i 2.Odpowiedzi:
To wydaje się działać dla mnie:
Sztuczka polega na tym, aby zawinąć go również w „wyświetlacz”.
Źródło: http://python.6.x6.nabble.com/Printing-HTML-within-IPython-Notebook-IPython-specific-prettyprint-tp5016624p5016631.html
źródło
Jakiś czas temu Jupyter Notebooks zaczęło usuwać JavaScript z treści HTML [ # 3118 ]. Oto dwa rozwiązania:
Udostępnianie lokalnego kodu HTML
Jeśli chcesz teraz osadzić stronę HTML z JavaScriptem na swojej stronie, najłatwiej jest zapisać plik HTML w katalogu z notatnikiem, a następnie załadować HTML w następujący sposób:
Udostępnianie zdalnego HTML
Jeśli wolisz rozwiązanie hostowane, możesz przesłać swoją stronę HTML do „zasobnika” Amazon Web Services w S3, zmienić ustawienia tego zasobnika tak, aby zasobnik hostował statyczną witrynę internetową, a następnie użyj komponentu iframe w swoim notatniku:
Spowoduje to wyrenderowanie zawartości HTML i JavaScript w ramce iframe, tak jak na każdej innej stronie internetowej:
źródło
Powiązane: Podczas konstruowania klasy
def _repr_html_(self): ...
można użyć do utworzenia niestandardowej reprezentacji HTML jej instancji:wyrenderuje się jako:
Więcej informacji można znaleźć w dokumentacji IPythona .
Zaawansowany przykład:
Wyrenderuje:
źródło
Rozwijając @Harmon powyżej, wygląda na to, że możesz połączyć oświadczenia
display
iprint
razem ... jeśli potrzebujesz. A może łatwiej jest po prostu sformatować cały kod HTML jako jeden ciąg, a następnie użyć wyświetlania. Tak czy inaczej, fajna funkcja.Wyświetla coś takiego:
Witaj świecie!
Oto link:
www.google.com
trochę więcej drukowanego tekstu ...
Tekst akapitu tutaj ...
źródło