2016-05-07 4 views
1

私はPythonにはかなり新しく、Google App Engineで単純なアプリケーションを作成することから始めましたが、今は別の場所に展開したいと考えています。 (私は非appengineのpython環境でwebapp2をインストールできますが、現時点ではそうではないでしょう)pythonスクリプトでself.response.writeのwebapp2の使用を置き換えてください。

次のようなpythonコードをwebapp2を使わずに同じように変更するにはどうすればよいですか?私はprintコマンドを試してみた

import webapp2 

class MainPage(webapp2.RequestHandler): 
    def get(self): 
     self.response.headers['Content-Type'] = 'text/html' 
     self.response.write('<a href="index.html">Search</a>') 

app = webapp2.WSGIApplication([ 
    ('/', MainPage), 
], debug=True) 

、urllibは、リダイレクトしても、基本的なWebサーバーをスクリプトと考えられるが、それらの仕事やのどれもやり過ぎのように思えるん。

私は非常に基本的なpython制御/作成されたウェルカムページを、私の単一ページのWebサイトindex.htmlにリンクさせようとしています。

私は現在、Pythonスクリプトが動作しない場合にindex.htmlをロードするApache Webサーバーを実行するCloud9を使用しています。しかし、私は、フルスケールのFlaskまたはDjangoアプリケーションに全部の変換を開始する前に、この単純な方法でPythonスクリプトを動作させることを好むでしょう。

ご迷惑をおかけして申し訳ありません。

+0

これはすべてのあなたの計画だった場合GAE実験はおそらく理想的な選択ではなかったですGAEアプリケーションにはGAE互換のPaaSインフラストラクチャ(webapp2だけでなく)が必要なためです。今あなたがビルドしたいもののチュートリアル/例に従う必要があります:フラスコ/ django on apache :) –

+0

ちょうどFlaskに移行するだけではあまり効果がありません。 –

+0

これはオープンエンドの質問です。 webapp2以外の特定のフレームワークを指定しない限り、他のフレームワークを使用するための提案が表示されます。 –

答えて

0

組み込みモジュールのみを使用して基本リクエストを処理することを目標とする場合は、BaseHTTPServerおよび関連するクラスを検索できます。ここには簡単な例があります:

from BaseHTTPServer import BaseHTTPRequestHandler,HTTPServer 

PORT_NUMBER = 8080 

class myHandler(BaseHTTPRequestHandler): 
    def do_GET(self): 
     self.send_response(200) 
     self.send_header('Content-type','text/html') 
     self.end_headers() 
     self.wfile.write('<a href="index.html">Search</a>') 
     return 

try: 
    server = HTTPServer(('', PORT_NUMBER), myHandler) 
    server.serve_forever()  
except KeyboardInterrupt: 
    server.socket.close() 

デフォルトでは静的ファイルは提供されませんが、複数のハンドラを追加できることに注意してください。多分見上げる:最後にhttps://docs.python.org/2/library/simplehttpserver.html

2

pythonanywhereは、私はWSGIを経由して必要なものを私に与えた、それはかなりstraightfowardであることが判明:

SEARCH = """<html> 
<head></head> 
<body> 
    <div style="text-align: center; padding-left: 50px; padding-top: 50px; font-size: 1.75em;"> 
     <p>Welcome:</p><a href="index.html">Search</a> 
    </div> 
</body> 
</html> 
""" 

def application(environ, start_response): 
    if environ.get('PATH_INFO') == '/': 
     status = '200 OK' 
     content = SEARCH 
    else: 
     status = '404 NOT FOUND' 
     content = 'Page not found.' 
    response_headers = [('Content-Type', 'text/html'), ('Content-Length', str(len(content)))] 
    start_response(status, response_headers) 
    yield content.encode('utf8') 
関連する問題