職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

CGIを作る

2021年04月30日 | Python
CGIで作る動的なWeb

【開発環境】
OS:Win10(64ビット)
言語:Python3.8.5(64bit)
Python の統合開発環境:IDLE
IDLEの操作は別サイト参照のこと

【CGIの準備】
・プログラムを保存する「cgi-bin」フォルダーを作る
Microsoft Windows [Version 10.0.19042.928]
(c) Microsoft Corporation. All rights reserved.
C:\Users\shyok>cd/d D:

D:\>cd D:\pg\Python38

D:\pg\Python38>mkdir cgi-bin

D:\pg\Python38>cd cgi-bin

D:\pg\Python38\cgi-bin>

・「my_first_cgi.py」ファイルにプログラムを書き、フォルダーに保存する
サンプルコード
#!/usr/bin/env python←シェバン行

print('はじめましてのCGI')

・実行
下記のように表示されればOK
D:\pg\Python38\cgi-bin>.\my_first_cgi.py
はじめましてのCGI

・「my_first_cgi.py」ファイルのプログラムを変更する
サンプルコード
#!/usr/bin/env python

html_body = ’’’<!DOCTYP html>
<html lang =" "ja">
<head>
<meta charset="utf-8">
<title>CGI</title>

</head>
<body>
はじめましてのCGI
</body>
</htnl>'’’

print('Content-type: text/html')
print('')
print(html_body)
・コマンドの実行
D:\pg\Python38\cgi-bin>.\my_first_cgi.py

・コマンドプロンプトに表示される
Content-type: text/html
<html lang =" "ja">
<head>
<meta charset="utf-8">
<title>CGI</title>

</head>
<body>
はじめましてのCGI
</body>
</html>
D:\pg\Python38\cgi-bin>

【HTTPアクセスに応じてプログラムを動かす】
Python内臓のWebサーバをCGIに対応させる。
一旦、コマンドプロンプトを閉じ
D:\pg\Python38>python -m http.server --cgi
Serving HTTP on :: port 8000 (http://[::]:8000/) ...

・CGIに対応させたWebサーバを起動させ、WebブラウザにURLを入れる
http://localhost:8000/cgi-bin/my_first_cgi.py

※文字化けするを起こした場合、「my_first_cgi.py」のコードを下記のように変更すると文字化けが直る
#!/usr/bin/env python
#文字化け防止
import sys←追加
import io←追加
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')←追加

html_body = ’’’<!DOCTYP html>
<html lang =" "ja">
<head>
<meta charset="utf-8">
<title>CGI</title>

</head>
<body>
はじめましてのCGI
</body>
</htnl>'’’

print('Content-type: text/html')
print('')
print(html_body)

・実行するとWebブラウザに
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする