【Pythonから出力した情報を表示する方法】サーバサイドで出力したHTML5ファイルをWebページで表示しよう!
Pythonで学ぶバックエンド開発 第3回
ダウンロード 第3回 サンプルコード (4.6 KB)
HTML5のスクリプトを出力する
「Page 1」の「.htaccess」ファイルがあるものとして話を進めます。今度は実際に、よくあるHTML5のスクリプトを出力します。<html>タグや<head>タグや<body>タグがあるHTML5スクリプトです。「Page 1」と比べて新たに「print」関数に「'''」~「'''」を囲んだ複数行の文字列を出力し、そこで普通のHTML5のスクリプトを出力します。
今回のサンプルコードでは出てきませんがPythonで、投稿された記事を繰り返し列挙したりして動的にこのHTML5スクリプトを書き換えるようなことができます。そうやってデータベースのデータを出力するようなことをします。
「Page 1」と同じように「body.py」ファイル[1]と「.htaccess」ファイル[2]を「xampp」→「htdocs」→「BezierBBS」フォルダ内に配置します。macOSやLinuxではbody.pyファイルにパーミッションで実行権限を与えます。
「XAMPP」の「Apache」を「Start」して「http://localhost/BezierBBS/BezierBBS_samplecode_03/body.py」をWebブラウザで開くと、次の図のようにHTML5スクリプトのWebページが表示されます。Webブラウザを終了する時にはApacheを「Stop」して停止するのを忘れないように。
今までは具体的なHTML5文書を書かずに、文字列をWebブラウザに表示するだけしましたが、今回はやっと<html>タグや<head>タグや<body>タグを書いて実際にHTML5文書を出力してみます。これでやっとWebアプリらしくなってきましたね。
本来WebブラウザではHTML5スクリプトのソースコードでなく、HTML5文書を元にレイアウトされたように表示されます。生のHTML5文書はWebブラウザの「ページのソース」などで見られます。
#!C:\Users\ユーザー名\AppData\Local\Programs\Python\Python312\python.exe
import sys
import io
#日本語があってもエラーにならないように
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
print('Content-Type: text/html; charset=utf-8\n\n')
print('''
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
</head>
<body>
htmlタグとheadタグとbodyタグを出力する。
</body>
</html>
''')
サンプルコードの解説
1行目の「ユーザー名」はお使いのパソコンに合わせて変更してください。またLinuxやmacOSでは「#!/usr/local/bin/python3.12」などのパスになります。
「import」で「sys」モジュールと「io」モジュールを読み込みます。
「Content-Type」を「text/html」とこのWebページがテキスト形式のHTML文書だと指定して出力します。
「print('''」~「''')」までの間をWebブラウザにそのまま出力します。
「<!DOCTYPE html><html lang="ja">」~「</html>」はよくあるシンプルなHTML5のスクリプトです。HTML5の文法については「フロントエンジニアのためのTauri 2.0ではじめるRustプログラミング」の第3回を参考にしてください。
この記事は参考になりましたか?
- この記事の著者
-
大西 武(オオニシ タケシ)
1975年香川県生まれ。大阪大学経済学部経営学科中退。プログラミング入門書などを30冊以上商業出版する作家。ドコモでグランプリなどコンテストに20回以上入賞するアーティスト。オリジナルの間違い探し「3Dクイズ」がTVで約10回出題。プロフィールサイト:https://profile.vixar.jp
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営する開発者のための情報メディアです。日々の開発に取り組むエンジニアやテクノロジーを学びたい方に向けて、プログラミングやAI活用、開発ツール、エンジニアの学びとキャリアに関する記事をお届けしています。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
