🥇

[pycgi] PHPのように、PythonをHTMLに埋め込む

2024/10/10に公開

自分用に開発していましたが、あまりにも便利だったので、公開しようと思います。
https://github.com/nnnnnnn0090/pycgi

リリースページからビルド済みバイナリをダウンロードしてください。
pythonのインストールは不要です。

実行すると、そのディレクトリに

./docs
./.sys // 隠しフォルダ

が自動で作成されます。
./docsフォルダがhtdocsのことです。
詳しくはReadmeをお読みください。

基本的な使い方

<!DOCTYPE html>
<html>
<head>
    <title>My pycgi Page</title>
</head>
<body>
    <h1>Welcome to pycgi!</h1>
    
    <!-- 静的なHTMLコンテンツ -->
    <p>これは静的なメッセージです。</p>
    
    <!-- 埋め込みPythonコード -->
    <?py
      # レスポンスヘッダーを設定する
      _RSP_HEADERS["Content-Type"] = "text/html; charset=utf-8"
      _RSP_HEADERS["Custom-Header"] = "MyHeaderValue"

      # 実行パスを表示する
      echo(f"<p>実行パス: {_EXECUTE_PATH}</p>")

      # ドキュメントルートを表示する
      echo(f"<p>ドキュメントルート: {_DOCSROOT}</p>")

      # echoを使ってコンテンツをレンダリングする
      echo("<p>これはechoを使ってレンダリングされました。</p>")

      # リクエストヘッダーを表示する
      for header, value in _REQ_HEADERS.items():
          echo(f"<p>{header}: {value}</p>")
      
      # GETクエリパラメータを表示する
      if "name" in _GET:
          echo(f"<p>こんにちは、{_GET['name']}さん!</p>")
      
      # POSTデータを表示する
      if _POST_DATA:
          echo("<p>POSTデータ:</p><pre>")
          echo(_POST_DATA)
          echo("</pre>")
      
      # JSONのPOSTデータを表示する
      if _POST_JSON:
          echo("<p>JSON POSTデータ:</p><pre>")
          echo(_POST_JSON)
          echo("</pre>")

      # ストレージAPIの例
      # ストレージに値を設定する
      Storage.setValue("nickname", "pycgi")

      # デフォルト値でストレージから値を取得する
      nickname = Storage.getValue("nickname", "none")
      echo(f"<p>保存されたニックネーム: {nickname}</p>")
    ?>
    
</body>
</html>

<?py ?>シンタックスを使用して、コードブロックを定義します。

文字のレンダリングには、echo()を使用してください。
printはコンソールに表示されます。

注意点。複数のコードブロックがある場合、_RSP_HEADERSは最後のブロックに書いてください。

Webサーバに必要な機能はほぼ備わっていると思います。
意見があればコメントください。

Discussion