☆☆ 新着記事 ☆☆

2018年5月25日金曜日

* (失敗)Python3でPC上に作ったWebサーバー上で、アプリとデータの受け渡し

(上手くできなかったページ): 次回以降にリベンジ。



Python 3 のデフォルトでついてくる機能を使ってPC上でWeb Serverの環境を立ち上げ、簡単なプログラムを実行しててみました。

内容:現在時刻を表示させるスクリプトになります。

#!/usr/bin/env python3
import datetime
#フォーマット文字列の作成


html_body = """
   

<html><body>
{0.year:d}/{0.month:d}/{0.day:d} {0.hour:d}:{0.minute:d}:{0.second:d}
</body></html>"""

now=datetime.datetime.now()

print("Content-type: text/html\n")
print(html_body.format(now))

このプログラムでは単純にスクリプトを実行し、結果をhtmlとしてブラウザに表示するというものでした。

今回は、ユーザとのデーターの受け渡しのあるプログラムを実行してみたいと思います。



前提

 Pythonには、URL上にクエリとして渡された値を受け取るためのモジュールが用意されています。それがcgiモジュールです。このモジュールを使うと、クライアントから渡されたリクエストを分割して、Pythonで扱いやすい形に変換できます。





プログラムの実行


前回のスクリプトになります。

#!/usr/bin/env python3
import datetime
#フォーマット文字列の作成


html_body = """
   

<html><body>
{0.year:d}/{0.month:d}/{0.day:d} {0.hour:d}:{0.minute:d}:{0.second:d}
</body></html>"""

now=datetime.datetime.now()

print("Content-type: text/html\n")
print(html_body.format(now))

今回のスクリプトになります。

ファイル名:querytest.py

#!/usr/bin/env python
html_body = """
<html><body>
foo = %s
</body></html>"""
import cgi
form=cgi.FieldStorage()    # (1)
print "Content-type: text/html¥n"
print html_body % foo      # (2)


挙動の確認。

http://127.0.0.1:8000/cgi-bin/querytest.py?foo=bar

更に複雑なスクリプト


ファイル名: find13f.py

#!/usr/bin/env python
html_body = """
<html><body>
foo = %s
</body></html>"""
import cgi
form=cgi.FieldStorage()    # (1)
print "Content-type: text/html¥n"
print html_body % foo      # (2)

挙動の確認。

http://127.0.0.1:8000/cgi-bin/find13f.py?year=3000



この2つとも上手くできなかった。
いつの日か戻ってきてリベンジしたい。




参考)
このページは、以下のサイトを参考にしています。
とても分かり易いサイトです。 ここに記載されていない細かな内容の解説もされています。
https://coreblog.org/ats/stuff/minpy_web/04/index.html

残念ながら、今回は記載されていることがうまくできませんでした。


0 件のコメント:

コメントを投稿