広告

WordPressの記事にiframeタグでPythonコードを埋め込む

WordPressのサイト上にPHPを使用して動的なコンテンツを表示することは可能ですが、PythonでもWordPressのサイト上で動的なコンテンツの表示ができるのでしょうか。

調べてみたところ、WordPressはPHPで開発されたプラットフォームですが、Pythonを導入することも可能なようです。

その手法として、PythonをインストールしてWebサーバーを設定する方法や、Pythonコードを実行できる外部サービス(例:Trinket)を利用する方法等が紹介されていました。しかし、いずれも専門的知識や、手間がかかりそうです。

そこでこの記事では、簡単にPythonを利用できる「PyScript」を使用して、PythonのコードをHTMLの中に埋め込んでiframeタグで実行してみたいと思います。(→関連記事

今回実施すること

 

PyScript(パイスクリプト)を知る

PyScript(パイスクリプト)とは、Anaconda社が開発した、HTMLファイル内にPythonコードを記述してブラウザ上で実行可能にするフレームワークです。これにより、JavaScriptの代わりにPythonを使ってWebアプリケーションを開発できます。

PyScriptのコードをiframeタグで実行

PyScriptのコードをiframeタグで実行してみました。次のような内容になります。

▼iframeタグ用コード(ファイル名は「test_PyScript.html」で保存)

▼「test_PyScript.html」の解説

  1. HTMLファイルの<head>内にPyScript実行に必要なコードを記述します。
    • <link>タグで、PyScriptのCSSを読み、基本的なスタイルを適用します。
    • <script>タグで、PyScript本体のJavaScriptファイルを読み込みます。(注1)
  2. HTMLファイルの<body>内に直接Pythonコードを記述します。
    • 2つの方法があります。
      1. <py-script>タグ内に直接Pythonコードを書く方法
      2. <script type=”py”>タグ内に直接Pythonコードを書く方法
    • <py-script>タグはブラウザ上でPythonを実行するためのフレームワークであり、<script type=”py”>タグはHTMLのscriptタグにtype属性を指定する方法です。
    • テストプログラムでは、この2つの方法で、表示内容が異なるか試すために<py-script>タグを「テスト1」として、<py-script>タグを「テスト2」として、同じ内容のプログラムを実行してみました。
    • サードパーティ製のライブラリを使用する場合は<py-config>タグの中に使用するライブラリを指定します。
      • 「テスト3」としてpandasとnumpyをパッケージとして指定しています。
      • <py-script>の中でこの2つのライブラリを使用してPandasのDataFrameを生成しています。
(注1)「 <script defer src=”https://pyscript.net/latest/pyscript.js”></script>」と紹介しているサイトもありますが、こちらは既に閉鎖しているようです。

▼記事に記述するコード

  • iframeタグで「test_PyScript.html」を呼び出して表示します。

結果を表示する

下のように表示されました。

▼iframeタグで「test_PyScript.html」を呼び出したときの表示

▼解説

  • <py-script>タグと<script type=”py”>タグでは、同じように表示されています。
  • 表示の方法は、print、display、js.console.logの3つの方法を試してみましたが、display以外は、ブラウザのコンソールに表示されました。(注2)
  • サードパーティ製のライブラリも使用できて、PandasのDataFrameが生成されています。
(注2)ブラウザのコンソールの開き方・・・Google Chromeの場合は、右上のボタンから「その他のツール」>「デベロッパーツール」を選びます。

まとめ

今回は、PyScriptを使用して、PythonのコードをそのままHTMLの中に埋め込んで実行してみました。

これからWordPressでWEBサイトを立ち上げる方の参考になれば嬉しいです。

 

 

参考





コメント

タイトルとURLをコピーしました