1.ビュー
管理ページがよく、その後、公的にアクセス可能なページを行います。私たちは、ブラウザでhttp://127.0.0.1:8000/admin/に入ったときに、ブラウザがログインページの背景管理を表示し、サーバは、このページを見つけて、それを返す方法です。/管理/私たちは要求を受信した後、サーバーを要求するページである、それは処理動作に対応している必要があり、処理動作は、このプロセスは、の観点で行われ、私たちはページとリターンバックのコンテンツを作成支援することです。
MVTのためのDjangoの設計フレームワークは、ユーザが要求されたURLは、ビュー、処理するための要求を受信するの背面図であって、要求元に処理結果を返します。
1.1定義ビュー
PythonはWeb要求を受け取り、Web応答を返す関数の図です。応答は、ページのHTMLコンテンツ、リダイレクト、404エラー、XMLドキュメント、または絵かもしれ...何でも可能です。ノービュー自体はロジックが含まれているかは重要で、それが応答を返さなければなりません。それはあなたのPythonのディレクトリ内にある限り、それは問題ではないコードを書きます。どこかのコードを配置するためには、契約を表示しますviews.pyに指定したディレクトリにプロジェクトまたはアプリケーションのファイルに配置されます。
ビューは通常、リクエストと呼ばれるパラメータを、持っている必要があり、ブラウザでの表示が戻らなければならないのHttpResponseオブジェクトパラメータのHttpResponse内容は、ページ上に表示されます。
オープンbooktest / views.pyファイルには、ビューのインデックスを定義します。
django.http 輸入のHttpResponse デフ指数(要求): リターンはHttpResponse(" インデックス")
1.2コンフィギュレーションのURLconf
その後、ブラウザのアドレスバーの入力、情報のURLのWebサイトへの要求、書かれた一つの良い試合とのURLconfずつでリクエスタのURL、マッチはビュー対応する機能を成功した場合ではないすべてのURLconfのマッチが成功した場合、呼び出されたが、それが戻って404エラー。
URLがURLconfのルール、二つの部分のビューが含まれます:
- URLは正規表現を使用してルールを定義しました。
- ビュービュー機能をviews.pyに定義されています。
URLconfの構成は、2つの手順が必要です。
- アプリケーションのURLconf 1.定義
- 2.プロジェクトでは、URLconfのを含め
booktest /アプリケーションで作成したファイルUrls.py:
django.conf.urlsのインポートURL から booktest インポートビュー urlpatterns = [ URL(R ' ^ $ ' 、views.index)、 ]
次のようにdjangotest / urls.py文書では、コードを変更します。
django.contribのインポート管理者 から django.urls インポート経路 から django.conf.urls インポート含む、URL urlpatterns = [ パス(' 管理/ ' 、admin.site.urls)、 URL(R ' ^ '、含む(' booktestを.urls " ))、 ]
アクセスを要求して1.3
ビューとのURLconfは、サーバーを起動し、よく定義されます。
python manage.py runserver
次に、ブラウザのアドレスバーにURLを入力します。
http://127.0.0.1:8000/
ページは次の図に示されているが、ビューが正常に実行されています。
2.テンプレート
ジャンゴ、テンプレート内のフロントエンドコンテンツの定義では、その後、美しいの様々なを表示するためにテンプレートを呼び出して、クールな効果が現れました。
なぜテンプレートそれを使うのか?
-
ページデザインの変更は、Pythonコードに適切な変更を加える必要があります。サイトのデザイン変更は、デザインがPythonのコードを変更することなく変更することができそうだとすれば、変更よりも頻繁に、多くの場合、基礎となるPythonコードしている、それははるかに便利になります。
-
HTMLやデザインで書かれたPythonのコードは2つの異なるジョブであり、ほとんどのプロのWeb開発環境を完了するために、異なる人々(とさえ異なる部門)に割り当てます。デザイナーやHTML / CSSコーダーは彼らの仕事を得るために編集Pythonコードに求められることはないはずです。
-
書き込みPythonコードとテンプレート2人のプログラマが効率がはるかに良い他はPythonとHTMLの両方が含まれている含まれているファイルに関する作業の編集を終了するのを待っている人をできるようにするよりも、最高で同時に作業をするデザイナー。
これらの理由から、ページとコードの分離のPythonの設計は非常にクリーンと保守が簡単です。
2.1テンプレートを作成します
アプリケーションbooktest下のビューのインデックスのindex.htmlのテンプレートを作成します。
パスセットテンプレートを探す:オープンdjangotest / settings.pyファイルは、DIRSの値テンプレートを設定します。
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]
2.2 定义模板
templtes/booktest/index.html文件:
<html> <head> <title>图书列表</title> </head> <body> <h1>{{title}}</h1> {%for i in list%} {{i}}<br> {%endfor%} </body> </html>
在模板中输出变量语法如下,变量可能是从视图中传递过来的,也可能是在模板中定义的。
{{变量名}}
在模板中编写代码段语法如下:
{%代码段%}
2.3 视图调用模板
打开booktest/views.py文件,调用上面定义的模板文件:
from django.shortcuts import render def index(request): context = {'title': '图书列表', 'list': range(10)} return render(request, 'booktest/index.html', context)
打开浏览器刷新页面。