Python Web ペ-ジ自動操作
環境変数読出ファイル作成
ここまでで .env ファイルからの環境変数読出ファイル sc_env_read.py を作成する準備ができました。
引き続き、この読出ファイル sc_env_read.py を作成していきます。
- お決まりの作法
Pyton がインスト-ルされている場所を示めします。
#!/usr/bin/python3
Pyton3 のインスト-ル場所がわからない場合は
$ which python3
で知ることができます。
ファイルで使用する文字コ-ドを設定します。
#coding: utf-8
HTTP ヘッダーを出力
print("Content-type: text/html; charset=UTF-8\n\n")
これで Python から出力された文字は Web で見ることができるようになります。 - ライブラリを取り込み
取り込む必要があるライブラリは1つです。
from dotenv import load_dotenv
dotenv のなかにある load_dotenv ライブラリ
を読み込み load_dotenv() で実行します。 - 環境変数値読出
Python OS モジュールを使用し import os os.getenv(key, default=None) とすると環境変数 key が存在すればその値を返し、存在しなければ default を返します。 key、default、および返り値は文字列です。 default=None は省略することができます。
- 読出環境変数値表示
読出した環境変数値を表示します。
COOKPAD_LOGIN = os.getenv('COOKPAD_LOGIN')
COOKPAD_PASSWORD = os.getenv('COOKPAD_PASSWORD')
print(COOKPAD_LOGIN)
print(COOKPAD_PASSWORD)
以上をまとめると以下のようになります。
#!/usr/bin/python3
#coding: utf-8
print("Content-type: text/html; charset=UTF-8\n\n")
from dotenv import load_dotenv
load_dotenv()
# 環境変数を参照
import os
COOKPAD_LOGIN = os.getenv('COOKPAD_LOGIN')
COOKPAD_PASSWORD = os.getenv('COOKPAD_PASSWORD')
print(COOKPAD_LOGIN)
print(COOKPAD_PASSWORD)
本内容を TeraPad 等で作成したら、ファイル名を適当に
sc_env_read.py
として保存します。
文字コ-ドは、UTF-8N
BOM なし
改行コ-ドは、LF
です。
保存先はホスト Wimdows OS の 共有フォルダ c:\vb_public_html にして、
ブラウザでアクセスできるようにします。
なお、
c:\vb_public_html
はゲスト OS Ubuntu のなかの
/home/yamada/public_html
とリンクしていて共有フォルダの関係にあります。
詳細は
ユ-ザ-ごとの公開ディレクトリを用意する
を読んでみてください。
sc_env_read.py ファイル動作確認
それでは sc_rape_re-3.py ファイルを実行してみましょう。
Ubuntu ディスクトップにある □>_ アイコンから端末画面を開き、
public_html ディレクトリに移動します。
yamada@ubuntu-20:~$ cd public_html
私の Virtual Ubuntu も 20.04LTS にアップグレ-ドしてしまいました。
yamada@ubuntu-20:~/public_html$ python3 sc_env_read.py
として確認します。
Content-type: text/html; charset=UTF-8
yamada-8@yahoo.co.jp
y1234567
のように表示されれば OK です。
WEB で表示する前にエラ-がないことを確認してください。
エラ-がなければ、WEB でも表示してみましょう。
ブラウザのアドレスバーに
http://v-host.jp/sc_env_read.py
または
http://localhost:8080/~yamada/sc_env_read.py
と入力して、画面に同じように表示されれば OK です。
ブラウザ表示では、ずらずらと改行なしで表示されます。
ここまでで、環境変数読出ファイルを作成する事ができました。
引き続き、自動操作の実現に進みます。