2011-07-07 4 views
6

私はPythonにはまったく新しく、Webフレームを構築する(Webフレームワークやテンプレートモジュールを使用しない)ようにしたいと考えています。最小要件は何ですか?あなたは簡単なセットアップを提案できますか?純粋なPythonでWebページを生成するための軽量設定

ありがとうございました!

編集:私はすべての費用をかけてミニマリストにしようとはしていません。私が探しているのは、言語の近くにとどまっている単純な共通の解決策です(そして、MVCなどの設計パラダイムを課すものでもありません)。

+2

最小要件はPythonとWebフレームワークです。 ;-) – Keith

+0

"... Webページを実行..."?ハァッ?それはどういう意味ですか? –

+2

@Chris、おそらくそれはIEでそれらを見ることを意味します) –

答えて

3

私はこの流れに慣れています。軽量のフレームワークを使用することをお勧めします。

ウェブアプリケーションはサーバーをセキュリティ上のリスクにさらしているため、多かれ少なかれ大規模な開発者コミュニティ(脆弱性を修正するための目玉)で管理されているものを使用するとよいでしょう。

また、「言語に近づきたい」場合は、のpythonic方法でHTTPを管理するための何らかの抽象レイヤーが必要です。 Pythonはすべて高水準です(バッテリーが含まれています)。

フレームワークの中には、Pythonの構文、セマンティクス、スタイルに本当に近いものがあります。例えばwebpyを見てください。私はこの引用がwebpyの背後にある哲学の多くを言うと思う:

「ジャンゴあなたはジャンゴでWebアプリケーションを書くことができますTurboGearsのは、あなたがTurboGearsの中のWebアプリケーションを書くことができますWeb.pyあなたはPythonでWebアプリケーションを書くことができます。。。」 - Adam Atlas

"regular" pythonの簡潔さと使いやすさの点で、もう一つの候補はcherrypyです。彼らのウェブサイトから:

CherryPyは、開発者が他のオブジェクト指向のPythonプログラムを構築するのと同じ方法でWebアプリケーションを構築することができます。 [...]あなたのCherryPy搭載のWebアプリケーションは、実際には独自のマルチスレッドWebサーバーを組み込んだスタンドアロンのPythonアプリケーションです。 Pythonアプリケーションを実行できる場所ならどこにでもデプロイできます。

3

あなたが本当に望むのであれば、必要最小限は、WSGIの理解です。これは、PythonとWebサーバーの間の接着剤です。あなたはすることができますこれの上にPython Webアプリケーションを直接ビルドします。

しかし、他の回答者と同様に、私は実際にフレームワークを使用することをお勧めします。彼らはDjangoのようなすべての巨大なモノリシックなものではありません。例えばFlaskのようなマイクロフレームワークを参照してください。彼らは、正しいコードにURLリクエストをルーティングするような明白なことを処理します。

2

だけ

$ python -m SimpleHTTPServer 
Serving HTTP on 0.0.0.0 port 8000 ... 

は今CGIHTTPServerを見てはるかに軽量より取得していません。このコマンドを実行します。本格的なフレームワークなしのより多くのアイデア

4

クリーンWSGIアプリのためのPythonライブラリでPY:

from wsgiref.simple_server import make_server 

def application(environ, start_response): 

    # Sorting and stringifying the environment key, value pairs 
    response_body = ['%s: %s' % (key, value) 
        for key, value in sorted(environ.items())] 
    response_body = '\n'.join(response_body) 

    status = '200 OK' 
    response_headers = [('Content-Type', 'text/plain'), 
        ('Content-Length', str(len(response_body)))] 
    start_response(status, response_headers) 

    return [response_body] 

# Instantiate the WSGI server. 
# It will receive the request, pass it to the application 
# and send the application's response to the client 
httpd = make_server(
    'localhost', # The host name. 
    8051, # A port number where to wait for the request. 
    application # Our application object name, in this case a function. 
    ) 

# Wait for a single request, serve it and quit. 
httpd.handle_request() 

は、その後、あなたはnginxの使用することができます:http://wiki.nginx.org/NgxWSGIModule

これはあるが、ほとんどの、安定した、安全で裸 - 骨の設定。

より多くの例:https://bitbucket.org/lifeeth/mod_wsgi/src/6975f0ec7eeb/examples/

これは(尋ねられたように)学ぶ最も良い方法です。私はすでにこの道を歩いている。

+0

Flaviusに感謝します。私はあなたの答えとnginxの使用をお勧めします。 –

関連する問題