1と2の前面には、それぞれ、基本的に私たち自身のインターフェイス(ビュー)を作成、そして、いくつかの基本的な操作、データベースとDjango独自の管理インターフェイスを実現しています。
直接リターンが閲覧サーバーに対応したアドレスにアクセスします。これは、最も一般的な相互作用があります。
訪問と同様のhttp:// localhostを:8000は、システムのホーム・ページに戻ります。
世論調査/ views.py:ビューを作成します。
1つの デフ指数(リクエスト): 2 リターンのHttpResponse(「こんにちは、世界あなたは世論調査インデックスにいる。。」) 3 4 デフ詳細(リクエスト、question_id): 5 #リターンHttpResponseには、( "あなたは結果を見ています質問%s「は%のquestion_id)。 6 試し: 7 質問= Question.objects.get(PK = question_id) 8 を除くQuestion.DoesNotExist: 9 昇給 Http404(" 質問が存在しません!" ) 10 リターンレンダリング(リクエスト、"世論調査/ detail.html '{ ' 質問" :質問}) 11の デフ結果(リクエスト、question_id): 12 レスポンス= " あなたが質問%sの結果を見ている" 13 リターンのHttpResponse(レスポンス%のquestion_id) 14 15 デフ票(リクエスト、question_id): 16 リターンのHttpResponse(" あなたの質問%sの上にいるの投票"%のquestion_id)
世論調査/ urls.py:ルーティング情報を変更します。
1
#默认进来首页
パス(''、views.index、NAME = ' インデックス' ) 2 #EX:/ポーリング/ 5 3 パス(' <INT:question_id> / '、views.detail、NAME = ' 詳細' )、 4 #EX:/ポーリング/ 5 /結果/ 5 パス(' <INT:question_id> /結果/ '、views.results、名前= ' 結果' )、 6 #EX:/ポーリング/ 5 /投票/ 7 パス(' <整数:question_id> /投票/ '、views.vote、名前= ' 投票')、
Open Serverは:
1 PY manage.pyのrunserver
アクセスパス:http://127.0.0.1:8000/polls/1/詳細ビューに。
アクセス・パスは、ビュー・サーバが唯一の2つのことを行う必要がある場合:の要求されたページの内容を返す HttpResponse
オブジェクトを、または例外(例えば404など)をスローします。
上記の例では、なぜ直接モデルAPIはObjectDoesNotExistを投げるが、それをHttp404をスローしませんか?
それはモデルとビューレイヤーの結合が増加することになるので。最も重要なイデオロギーの指導ジャンゴのひとつは、疎結合を保証するために設計されています。いくつかの制御カップリングはdjango.shortcutsモジュールに含まれます。
あります get_list_or_404()
動作原理の機能と get_object_or_404()
同じであることを除いて、 get()
関数が置き換えられている filter()
機能。リストが空の場合、それがスローされます Http404
例外を。
しようとする自分自身のコンテンツ。
します。http:// localhost:8000 Baocuoは次のように見つかった:あなたは複数のプロジェクトへの直接アクセスを設定した後、
必要性のmysite.urls.py、プラス:パス(「)polls.urls」「を、(含める」)、プロジェクトへのアクセスで、デフォルトは世論調査に入っ指定されている/パスを見つけるのurls.py。
urlpatterns = [ パス('' 、(含める' polls.urls ' )、) パス(' expollsを/ '(含む、' expolls.urls ' )) パス(' ポーリングを/ 'としては、(' polls.urls ' ) )、 パス(' 管理/ ' 、admin.site.urls) ]
崇明、あなたが名前空間のURLを追加することができ、複数のアプリケーションがあります。対応するプロジェクトファイルを変更するのurls.py。プロパティAPP_NAMEを追加=「」
django.urls インポートパスを から。インポートビュー APP_NAME = ' 世論調査' urlpatterns = [ パス(''、views.index、名前= ' インデックス' )、 パス(' <整数:question_id> / '、views.detail、名前= ' 詳細' )、 パス(' <INT:question_id> /結果/ '、views.results、名前= ' 結果' )、 パス('<整数:question_id> /投票/ 'views.vote、名前= ' 投票" )、 ]
名前空間の詳細ビューを指すように変更:世論調査/テンプレート/ポーリング/ index.htmlを
<LI> <a href= "{% URL'polls:detail' question.id %}"> {{}} question.question_text </a>の</ LI>
容易に個人的な記録。