SAE-Python チュートリアル (1) SAE 上で Python を開発する

例証します:

(1) 私は Python と Web 開発の初心者です。この記事の内容は初心者が経験を交換するためのものです...実際、苦情は歓迎です:)

(2) SAE は Python を初めて使用する学生にとってはあまり有用な環境ではないと思いますが、Web サービスをローカルに配置するために nginx と uWSGI をインストールすることをお勧めします。


1.1 SAEのPythonサービスのトライアルに申し込む

以下に示すように、SAE アカウントのアプリケーション作成インターフェイスの開発言語オプションに Python が表示されない場合は、ここ ( http://www.douban.com/group/topic/24041553/ )から申請する必要があります。申し込みから1日ほどでPythonアプリケーションを作成することができました。




さらに、SAE-Python メーリング リストおよび Douban のSAE Python グループに参加して、開発者と通信することができます。


1.2 最初の Python アプリケーションを作成する

前のステップでアプリケーションが成功すると、開発言語選択インターフェイスに Python のオプションがあることがわかります。アプリケーションの残りの部分は、SAE PHP アプリケーションの作成と同じです。



関連情報を入力したら、アプリケーションを開きます

アプリケーションのホームページで [コード管理] をクリックし、バージョンを作成すると、システムによってコード フレームワーク (config.yaml および Index.wsgi) が自動的に生成されます。 



この時点で、このアプリケーションのリンクをクリックすると、Web ページに作成が成功したことを示す「 Welcome to SAE! 」が表示されることがわかります。





1.3 独自の Hello World を作成する

SAE エディター (実際には非常に使いにくいもの) を使用して、オンラインでコードを編集できるようになりました。現在、ファイルは 2 つだけ、先ほど述べた config.yaml とindex.wsgi だけです。

現時点では config.yaml を無視して、index.wsgi を見てみましょう。



拡張子 .wsgi が付いたこのファイルは、実際には Python ファイルです。最初に sae モジュールが導入され、次にアプリ関数で http 形式のコンテンツが返されます。これは、「SAE へようこそ!」として表示されます。

最後に、sae.create_wsgi_app は、アプリを SAE 環境に適したアプリケーションに変換します。(詳細は公式ドキュメントの「 SAE Python 環境」の説明を参照してください)


したがって、最終的に表示されるコンテンツは、このアプリ関数の戻り値によって決まります。

アプリ定義の先頭にコードを追加し、アプリ関数の return 部分を置き換えてみましょう。コードは次のようになります。


import sae

def hello():
    return 'hello my python'

def app(environ, start_response):
    status = '200 OK'
    response_headers = [('Content-type', 'text/html; charset=utf-8')]
    start_response(status, response_headers)
    return hello()
   

application = sae.create_wsgi_app(app)

この時点でそれを保存し、アプリケーションに再度アクセスすると、「hello my Python」が表示されれば、元のコンテンツが正常に置き換えられたことを意味します。

はは、これでこのチュートリアルの最初のレッスンは終わりですか?


1.4 なぜこのように hello world を書くのですか?

実際にはアプリ関数のreturn部分以降の文字列を直接置き換えても効果は確認できるので、このように書く必要はないでしょうか?

心配しないで、SAE が提供する使用可能なフレームワークを見てみましょう。公式ドキュメントの「クイック スタート」には、サポートされているすべてのフレームワークと対応するクイック スタート モードがリストされています。Django、Web.py、Tornado などのフレームワークの使用方法を学んでいれば、これらは問題ないはずです。


——フレームワークを使いたくない場合はどうでしょうか?


この「研究ノート」を読み続けるのに耐えられない場合は、コードを次のように変更してください。


import sae

def hello():
    return 'hello my python'
    
def hello2():
    print 'hello 2'
    return

def app(environ, start_response):
    status = '200 OK'
    response_headers = [('Content-type', 'text/html; charset=utf-8')]
    start_response(status, response_headers)
    hello2()
    return hello()
   

application = sae.create_wsgi_app(app)

print ステートメントを実行する hello2 という関数を追加しました。次に、アプリ関数で hello2 を呼び出します。

さあ、実行してください。


その結果、print ステートメントの出力がブラウザー インターフェイスに印刷されないことは想像できるはずです。ただし、この hello2 関数も実行されます。SAE では、コマンド ラインで Python を実行するときのように印刷出力を見ることはできませんが、これは Python がやるべきことを実行できるようにすることを妨げるものではありません。それでも、さまざまなモジュールの導入をサポートし、さまざまな強力な機能を実行します。 just us URL 経由でのみ呼び出すことができます。したがって、アプリケーションの URL にアクセスすると、実際にはアプリケーションの機能が実行されます。


実行する必要がある関数を複数定義した場合は、それらをすべてアプリ関数に入れて呼び出すだけです。


1.5 終わりに

いろいろ話してきた結果、最終的には、上記の「なぜこのような hello world を書くのか?」という疑問が解消されるように、SAE で開発するフレームワークを選択することをお勧めします。関数やオブジェクトが増加し始めると、それを管理するフレームワークが存在しないことがあります。の場合は、これらのコードを保存する新しい (または複数の) py ファイルを作成し、関数とオブジェクトの呼び出しを管理するコードを自分で記述する必要があります。現時点では、このような状況でも Web フレームワークの使用が役立つことがわかります。


参考用のリンクをいくつか示します。

(1) SAEに基づくPython+Django入門演習

(2) SAE Python 開発者マニュアル


==============================================

この記事の引用元: http://blog.csdn.net/zh405123507

タグ: Python SAE web.py wsgi

おすすめ

転載: blog.csdn.net/zh405123507/article/details/8958257