Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python CGIスクリプトですべてのHTTPヘッダーを読み取る方法は?


Pythonを使用したApacheCGIスクリプトでカスタムリクエストヘッダーの値を取得することができます。解決策はこれに似ています。

Apacheのmod_cgiは、受信したHTTPリクエストヘッダーごとに環境変数を設定します。この方法で設定された変数にはすべてHTTP_プレフィックスが付いているため、たとえばx-client-version:1.2.3は変数HTTP_X_CLIENT_VERSIONとして使用できます。

したがって、上記のカスタムヘッダーを読み取るには、os.environ["HTTP_X_CLIENT_VERSION"]を呼び出すだけです。

以下のスクリプトは、すべてのHTTP_*ヘッダーと値を出力します-

#!/usr/bin/env python

import os
print "Content-Type: text/html"
print "Cache-Control: no-cache"
print

print "<html><body>"
for headername, headervalue in os.environ.iteritems():
    if headername.startswith("HTTP_"):
        print "<p>{0} = {1}</p>".format(headername, headervalue)
 
print "</html></body>"

  1. Pythonでパターンを印刷する方法は?

    Pythonのパターンは、ネストされたforループを使用して印刷できます。外側のループは行数を反復処理するために使用され、内側のループは列数を処理するために使用されます。印刷ステートメントは、要件に応じてさまざまなパターンを形成するように変更されます。 パターンには、星型、数字型、アルファベット型があります。パターンは、さまざまな形、三角形、ピラミッドなどにすることができます。 例 これらのパターンはすべて、これらの異なるパターンを形成する変更されたprintステートメントを含むforループを使用して印刷できます。 これらのパターンの印刷の基本的な考え方は同じですが、わずかな違いが

  2. Pythonで辞書のすべてのキーを印刷するにはどうすればよいですか?

    辞書オブジェクトには、この仕事をしてくれるkeys()メソッドがあります。 >>> D1 = {1:a, 2:b,3:c} >>> D1.keys() dict_keys([1, 2, 3]) >>> list(D1.keys()) [1, 2, 3] 反復可能なリストオブジェクトは、forループを使用してトラバースできます >>> L1 = list(D1.keys()) >>> for i in L1: print (i) 1 2 3