Eclipse で実行させるのと、WWWサーバー( ここでは AN HTTP Server )で実行させるのとでは、やはりもっといろいろな切り口の理解が必要になります。 とにかく、CGI としてベタな QUERY_STRING を使用してベタな format で作成後、f-string でヒアドキュメントで HTML 部分を簡潔にして、最後に cgi モジュールで GETとPOST を兼用にしました。(FieldStorage() の戻りの内容が変更できないようなので、単純な dict に入れ替えています。) ▼ GET/POST 共用 : 結局 cgi モジュール で作成 : f-string ヒアドキュメント埋め込み
import cgi
import cgitb
cgitb.enable()
import sys
import io
import os
import urllib.parse
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
print("Content-Type: text/html; charset=utf-8")
print( "Expires: Thu, 19 Nov 1981 08:52:00 GMT" )
print( "Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0" )
print( "Pragma: no-cache" )
print()
form = cgi.FieldStorage()
fields = {}
fld_names = {"氏名": "field1", "フリガナ":"field2"}
for value in fld_names.values():
if value not in form:
fields[value] = ""
else:
fields[value] = form[value].value
out_client = f"""<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form method="post">
<p>氏名 : <input type="text" name="{fld_names["氏名"]}" value="{fields[fld_names["氏名"]]}"></p>
<p>フリガナ : <input type="text" name="{fld_names["フリガナ"]}" value="{fields[fld_names["フリガナ"]]}"></p>
<p>送信 : <input type="submit" name="send" value="送信"></p>
</form>
</body>
</html>"""
print(out_client)
▼ GET のみ f-string を使った、ヒアドキュメント埋め込み
import cgitb
cgitb.enable()
import sys
import io
import os
import urllib.parse
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
print("Content-Type: text/html; charset=utf-8")
print( "Expires: Thu, 19 Nov 1981 08:52:00 GMT" )
print( "Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0" )
print( "Pragma: no-cache" )
print()
try:
qs = os.environ["QUERY_STRING"]
except KeyError as e:
qs = ""
get = urllib.parse.parse_qs(qs)
fld_names = {"氏名": "field1", "フリガナ":"field2"}
for value in fld_names.values():
if get.get(value) is None:
get[value] = [""]
out_client = f"""<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form>
<p>氏名 : <input type="text" name="{fld_names["氏名"]}" value="{get.get(fld_names["氏名"])[0]}"></p>
<p>フリガナ : <input type="text" name="{fld_names["フリガナ"]}" value="{get.get(fld_names["フリガナ"])[0]}"></p>
<p>送信 : <input type="submit" name="send" value="送信"></p>
</form>
</body>
</html>"""
print(out_client)
▼ GET のみ : format を使った、クォートの作成が面倒な埋め込み
import cgitb
cgitb.enable()
import sys
import io
import os
import urllib.parse
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
print("Content-Type: text/html; charset=utf-8")
print( "Expires: Thu, 19 Nov 1981 08:52:00 GMT" )
print( "Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0" )
print( "Pragma: no-cache" )
print()
try:
qs = os.environ["QUERY_STRING"]
except KeyError as e:
qs = ""
get = urllib.parse.parse_qs(qs)
fld_names = {"氏名": "field1", "フリガナ":"field2"}
for value in fld_names.values():
if get.get(value) is None:
get[value] = [""]
out_client = """<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form>
<p>氏名 : <input type="text" name=\"""" + fld_names["氏名"] + """\" value="{""" + fld_names["氏名"] + """}"></p>
<p>フリガナ : <input type="text" name=\"""" + fld_names["フリガナ"] + """\" value="{""" + fld_names["フリガナ"] + """}"></p>
<p>送信 : <input type="submit" name="send" value="送信"></p>
</form>
</body>
</html>"""
out_client = out_client.format(
field1=get.get(fld_names["氏名"])[0],
field2=get.get(fld_names["フリガナ"])[0]
)
print(out_client)
AN HTTP Server の設定テストにはまだまだ使える(重宝する) AN HTTP Server の正しい使用方法




エディタの # コメント色
デフォルトが灰色で見にくいので濃い緑を使用しました


ここで、後からの運用で使う場合を想定して浅い場所にインストールします。ただ注意すべきは、以前に Python を別の場所にインストールして削除した事があると、古いほうのディレクトリに MySQL のコネクタがインストールされるおそれがあります。( C:\Users\lightbox\AppData\Local 等を探して下さい )
▼ この Python を Eclipse で新しいインタープリタで登録してもかまいません
Python のインストールが完了したら、mysql-connector-python-8.0.6-rc-py3.6-windows-x86-64bit.msi を実行してコネクタをインストールします。そして、"C:\Python36\Lib\site-packages\mysql" と "C:\Python36\Lib\site-packages\mysqlx" のフォルダを "C:\pleiades\python\3\Lib\site-packages" 内にコピーします。
3) Eclipse の Python パースペクティブで MySQL に接続して実行
Eclipse 用の Python で使用するワークスペース用フォルダを作成しておいて選択します。
Python パースペクティブを選択します。
手順1) 注意事項
Pleiades Eclipse 4.7 Oxygen 2 Windows 64bit Ultimate Full Edition でワークスペースを最初に開くと、『システム PYTHONPATH の変更が検出されました』と出るので、とにかくこれは避けれなかったので適用します。
また、Python と Ruby では、RemoteSystemsTempFiles が作成されてしまいます。あっても問題無いですが、削除したい場合は『
プロジェクト名を入力して、python3 を選択します( Pleiades に同梱の Python です )
手順3) パッケージ作成
手順4) モジュール作成
※ フォントの変更は ウインドウ => 設定
手順5) 実行の構成
Python の実行をダブルクリックすると新しい構成ウィンドウになるので、パッケージとモジュールを参照ボタンで参照してから実行します。
手順6) MySQL用のコードでテスト
MySQL を起動して以下のコードを貼り付けて実行します。
( MySQLの環境は 


※ エキスパートモードで表示しています
アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります


