2016-06-23 10 views
0

Pythonの内部にあるHTMLコードに変数を挿入する際に問題があります。エラーはコード%(myVar)に存在します。 %(myVar)を削除すると、Webサイトに%sが表示されます。 %(myVar)を挿入すると、500の内部サーバーエラーが発生します。以下はPythonコード内のHTML変数は表示されません

は私のコードです:

 #!/usr/bin/python 
    import os 

    virtenv = os.environ['OPENSHIFT_PYTHON_DIR'] + '/virtenv/' 
    virtualenv = os.path.join(virtenv, 'bin/activate_this.py') 
    try: 
     execfile(virtualenv, dict(__file__=virtualenv)) 
    except IOError: 
     pass 
    # 
    # IMPORTANT: Put any additional includes below this line. If placed above this 
    # line, it's possible required libraries won't be in your searchable path 
    # 
    import time 
    def application(environ, start_response): 

     ctype = 'text/plain' 
     if environ['PATH_INFO'] == '/health': 
      response_body = "1" 
     elif environ['PATH_INFO'] == '/env': 
      response_body = ['%s: %s' % (key, value) 
         for key, value in sorted(environ.items())] 
      response_body = '\n'.join(response_body) 
     else: 
      ctype = 'text/html' 
      myVar = "Howdy Partner" 
      response_body = '''<!doctype html> 
    <html lang="en"> 

    <body> 

     <h1> My Change - Hello World!</h1> 
     <p1>%s</p1> 

    </body> 
    </html>''' 

     %(myVar) 
     status = '200 OK' 
     response_headers = [('Content-Type', ctype), ('Content-Length', str(len(response_body)))] 
     # 
     start_response(status, response_headers) 
     return [response_body] 
+0

SyntaxErrorが表示されますか? myVarは、 '' '' ''と同じ行になければなりません。 –

答えて

2

あなたは%(myVar)文ではないので、そうしないと、構文エラーを取得し、あなたの文字列の末尾よりも同じ行に%myvarを持っている必要があります。

 response_body = '''<!doctype html> 
<html lang="en"> 

<body> 

    <h1> My Change - Hello World!</h1> 
    <p1>%s</p1> 

</body> 
</html>''' %myVar 
関連する問題