[Django入門知識浅介]最初のDjangoプログラム:Hello World

4366 ワード

注:以下の内容は現代魔法学院のウェブサイトの最初のDjangoプログラムから転載された:Hello World一文、学習用のみ.
Djangoプロジェクトに含まれるファイル
startprojectコマンドを使用してディレクトリを作成すると、次の4つのファイルが生成されます.
  • __init__.py:Pythonにこのディレクトリを開発パッケージ(モジュールのセット)に必要なファイルとして扱わせます.これは空のファイルです.一般的には変更する必要はありません.
  • manage.py:Djangoプロジェクトとさまざまな方法で対話できるコマンドラインツールです.python manageと入力します.py help、何ができるか見てみましょう.このファイルを編集する必要はありません.このディレクトリの下で生成するのは、便利さのためです.
  • settings.py:Djangoプロジェクトの設定または構成.このファイルで使用可能な設定タイプとそのデフォルト値を表示し、理解します.
  • urls.py:DjangoプロジェクトのURL設定.あなたのdjangoサイトのディレクトリと見なすことができます.現在、空です.

  • これらのファイルは小さいが、実行可能なDjangoアプリケーションを構成している.
    最初のDjangoベースのページ:Hello World
    私たちの最初のターゲットのように、この有名なサンプル情報:Hello Worldを出力するためのページを作成します.
    もしあなたがHello worldページを発表したことがあるならば、しかしホームページのフレームワークを使っていないで、ただ簡単にhello.htmlテキストファイルにHello Worldと入力し、任意のWebサーバにアップロードします.この過程で、このページに関する2つの重要な情報について説明しました(文字列「Hello world」)とそのURL(http://www.example.com/hello.htmlああ、ファイルをサブディレクトリに置くと、http://www.example.com/files/hello.html).
    Djangoを使用すると、この2つのページの内容はview function(ビュー関数)によって生成され、URLはURLconfに定義されています.まず、Hello Worldビュー関数を書きます.
            1. ビューの作成
    まずstartprojectで作成したmysiteフォルダにviewsというフォルダを作成します.pyの空のファイル.つまり_init__.pyこれらのファイルの兄弟ディレクトリにあります.
    このPythonモジュールには、この章のビューが含まれます.Djangoはviewに対してpyのファイル名には特に要求はありません.このファイルの名前は気にしません.しかし、約束に従ってviewと名付けた.pyは良いアイデアで、他の開発者があなたのコードを読むのに役立ちます.
    from django.http import HttpResponse
    
    def hello(request):
    	return HttpResponse("Hello World")

    OK、こんなに簡単で、ビューができました.
    このコードを行ごとに分析します.
    まずdjangoからhttpモジュールインポート(import)HttpResponseクラス.HttpRequestとHttpResponseの詳細については、後述の付録を参照してください.後で使用するため、これらのクラスをインポートする必要があります.
    次にhelloというビュー関数を定義します.
    各ビュー関数には、通常requestと呼ばれる少なくとも1つのパラメータが必要です.このビューをトリガ、現在のWebリクエスト情報を含むオブジェクトであるクラスdjangoである.http.HttpRequestのインスタンスです.この例では、requestでは何もしませんが、このビューの最初のパラメータでなければなりません.
    ビュー関数の名前は重要ではありません.Djangoがそれを認識するには、必ずしも特定の方法で名前を付けなければならないわけではありません.ここでは、この名前がビューの意図を明確に表示しているため、helloと名付けました.同様に、hello_wonderful_beautiful_world、このような見苦しい短文に名前をつけます.次のセクション(Your First URLconf)では、Djangoがこの関数をどのように見つけたかを示します.
    この関数には単純なコードが1行しかありません.HttpResponseオブジェクトを返します.このオブジェクトには「Hello world」というテキストが含まれています.
    ここでは主に、ビューがPythonの関数です.この関数の最初のパラメータのタイプはHttpRequestです.HttpResponseインスタンスを返します.Pythonの関数をDjangoで識別可能なビューにするには、この2つの条件を満たす必要があります.△例外もありますが、後で接触します.
            2. URLconfを作成
    前にビューを作成しましたが、詳細に説明したURLで明示的に表示し、このビューをアクティブにする必要があります.ビュー関数とURLをバインドするためにURLconfを使用します.
    URLconfはDjangoがサポートしているサイトのディレクトリのようです.本質は、URLモードと、そのURLモードに呼び出すビュー関数とのマッピングテーブルです.このURLに対してこのコードを呼び出し、そのURLに対してそのコードを呼び出すようにDjangoに伝えます.例えば、ユーザが/foo/にアクセスすると、ビュー関数foo_が呼び出されるview()このビュー関数はPythonモジュールファイルviewに存在する.pyで.
    startprojectコマンドは、自動的にURLconf(urls.pyファイル)を作成します.デフォルトのurls.pyは次のようになります.
    from django.conf.urls import patterns, include, url
    
    # Uncomment the next two lines to enable the admin:
    # from django.contrib import admin
    # admin.autodiscover()
    
    urlpatterns = patterns('',
        # Examples:
        # url(r'^$', 'PythonProject.views.home', name='home'),
        # url(r'^PythonProject/', include('PythonProject.foo.urls')),
    
        # Uncomment the admin/doc line below to enable admin documentation:
        # url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
    
        # Uncomment the next line to enable the admin:
        # url(r'^admin/', include(admin.site.urls)),
    )

    次に、正しいことを認識するように修正します.http://127.0.0.1:8000/hello/このURLの識別.簡単です.このような一言を加えるといいです.
    ('^hello/$', hello),

    現在アクセスhttp://127.0.0.1:8000/hello/あ、OK、成功.
    デフォルトのURLconfには、注釈されたDjangoでよく使われる機能が含まれており、これらの注釈を削除するだけでこれらの機能を開くことができます.次に、URLconfでコメントされた行を無視した実際の内容を示します.
    from django.conf.urls.defaults import *
    
    urlpatterns = patterns('',
    )

    コードを行ごとに説明しましょう.
  • 第1行はdjangoを導入する.conf.urls.Django URLconfの基本構造であるdefaultsの下のすべてのモジュール.これはpatterns関数を含む.
  • 2 2行目はpatterns()関数を呼び出し、urlpatterns変数に戻り結果を保存します.patterns関数には現在、パラメータが1つしかありません.空の文字列です.(この文字列は、ビュー関数の汎用接頭辞を表すために使用できます.詳細は後述します.)
  • 現在はurlpatterns変数であることに注意すべきであり、DjangoはROOT_からURLCONFモジュールで見つけました.この変数は、URLと、これらのURLを処理するためのコードとのマッピング関係を定義します.デフォルトでは、URLconfのすべての内容が注釈されています.Djangoアプリケーションは白版です.
    簡単に言えば、Djangoに、URL/hello/を指すすべてのリクエストはhelloというビュー関数で処理されるべきだと伝えただけです.
    ここでは、最初のDjangoのwebページを作成しました.タスクが完了しました.