Slide 1

Slide 1 text

0 jinja2を⽤いたログファイルの⼀覧化 2024-02-09 第78回NearMe技術勉強会 Yuta OKAMOTO

Slide 2

Slide 2 text

1 ⽬次 ● 動機 ● 解決策 ● jinja2とは? ● ハンズオン

Slide 3

Slide 3 text

2 ● ログファイルを一覧化したい → index.htmlが欲しい! ● index.htmlでは表形式でログファイルを一覧化できるようにしたい ● 異なる値を取りうるパラメータの数だけ行数を指定したい 動機

Slide 4

Slide 4 text

3 ● 草案 ○ Pythonスクリプト内で文字列でhtmlを作成 ■ ログファイルから表の行数を決めるのがだるい ○ Pythonのライブラリを使う? 解決策

Slide 5

Slide 5 text

4 解決策 ● とりあえずgptに聞いてみた ○ (質問)Pythonでhtmlファイルを生成する方法を複数個教えてください.そのメリット・デメリットが分かるようにまとめて欲しいで す. ○ 文字列操作をする方法 ■ メリット: ● シンプルで直感的な方法。 ● Python の標準機能のみを使用するため、追加のライブラリが不要。 ■ デメリット: ● 大規模な HTML ファイルを生成する場合、コードが複雑になりがち。 ● HTML の構造を理解していないと、適切な形式の HTML を生成するのが難しい。 ○ テンプレートエンジンを使用する方法(例 : jinja2) ■ メリット: ● テンプレートエンジンを使用することで、 HTML の構造とデータの分離が容易。 ● 変数や条件分岐などを使用して動的な HTML を生成できる。 ■ デメリット: ● Jinja2 などのライブラリをインストールする必要がある。 ● テンプレートファイルを別途用意する必要がある。 ○ ライブラリを使用する方法(例 : BeautifulSoup) ■ メリット: ● HTML の解析や変更が容易。 ● HTML の構造を理解していなくても、特定の要素を操作できる。 ■ デメリット: ● BeautifulSoup などのライブラリをインストールする必要がある。 ● シンプルな HTML の生成には他の方法よりも手間がかかるかもしれない。

Slide 6

Slide 6 text

5 Pythonのような記法が使えるテン プレートエンジン Docs : https://jinja.palletsprojects.com/e n/3.1.x/ jinja2とは?

Slide 7

Slide 7 text

6 リポジトリ : https://github.com/yutaokamoto/html_generator 1. git clone [email protected]:yutaokamoto/html_generator.git 2. curl -sSL https://install.python-poetry.org | python3 - 3. poetry install 4. poetry run python src/generate_index_html.py ハンズオン

Slide 8

Slide 8 text

7 Thank you