PythonフレームのDjango学習ノート(五)

4402 ワード

最初のDjangoホームページのリンク
  • 入ってきた要求は転入/ハロー/.
  • DjangoはROOTにあります.URLCONF構成で、ルートURLconfを決定します.
  • Djangoは、URLconfのすべてのURLモードにおいて、最初の一致/ハロー/のエントリを検索する.
  • マッチが見つかったら、対応するビュー関数を呼び出します.
  • ビュー関数は、HttpResonseを返します.
  • Django変換HttpResonseは、適切なHTTP reponseとして、Webページで表示されます.
  • 関数部分にurl写像した正規表現に関する知識は、http://www.cnblogs.com/voidy/p/3946451.htmlのブログで紹介されています.Djangoページを書くには十分ですが、爬虫類を書きたいなら、正規表現の知識を学ぶことをお勧めします.
    最初のダイナミックビュー
    このビューは、現在の日付と時間を計算し、これらの値を含むHttpResonseを返します.Pythonでこう書きました.
    >>> import datetime
    
    >>> now = datetime.datetime.now()
    
    >>> now
    
    datetime.datetime(2014, 8, 31, 10, 39, 40, 234000)
    
    >>> print now
    
    2014-08-31 10:39:40.234000
    Djangoビューに現在の日付と時間を表示させるためには、ステートメント:datetime.datetime.now()をビュー関数に入れて、HttpResonseオブジェクトに戻るだけでいいです.コードは以下の通りです
     1 from django.http import HttpResponse
    
     2 import datetime
    
     3 
    
     4 def hello(request):
    
     5     return HttpResponse("Hello world")
    
     6 
    
     7 def current_datetime(request):
    
     8     now = datetime.datetime.now()
    
     9     html = "<html><body>It is now %s.</body></html>" % now
    
    10     return HttpResponse(html)
    ファイルのトップに、import datetimeという文が追加されました.これで日付の計算ができます.
    関数の8行目のコードは、現在の日付と時刻を計算し、datetime.datetimeオブジェクトとしてローカル変数nowとして保存します.
    関数の9行目のコードはPythonのフォーマット文字列(format-string)機能でHTML応答の一部を構成しています.文字列の%sはプレースホルダで、文字列の後の百分番はその後の変数nowの値で%sを表します.変数%sはdatetime.datetimeオブジェクトです.文字列ではありませんが、%sは文字列に変換されます.例えば、2014-08-31 10:39:40.234000です.この結果、HTMLの出力文字列は、It is now 2014-08-31 10:39:40.234000となります.
    最後に、前のブログに書いたhello関数のように、ビューはHttpResonseオブジェクトに戻り、生成された応答を含みます.
    上記のコードを追加した後、urls.pyにURLモードを追加して、DjangoがどのURLでこのビューを処理するかを教えます.time/などの言葉で分かりやすいです.
    1 from django.conf.urls.defaults import *
    
    2 from mysite.views import hello, current_datetime
    
    3 
    
    4 urlpatterns = patterns('',
    
    5     ('^hello/$', hello),
    
    6     ('^time/$', current_datetime),
    
    7 )
    ビューを書き込み、URLconfを更新した後、コマンドpython manage.py runserverを実行してサービスを開始し、ブラウザに入力します.http://127.0.0.1:8000/time/. 現在の日付と時刻が表示されます.