Djangoでページを表示させる
Djangoでページを表示させるにはhtmlファイルを作る必要がある。
この記事では、ブラウザでブログアプリに接続したときにページを表示させるための手順をまとめる。
現在のディレクトリ構成は以下の通り。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
デスクトップ └Blog ├Blog_app │ ├migrations │ ├__init__.py │ ├adming.py │ ├apps.py │ ├models.py │ ├tests.py │ ├views.py │ ├urls.py │ ├templates │ └Blog_templates ├db.sqlite3 ├config │ ├・・・ │ └urls.py ├env_blog └manage.py |
前回:
Djangoでページを表示させる
アプリケーションのurls.pyの編集
~デスクトップ/Blog/Blog_app/urls.py
1 2 3 4 5 6 |
from django.urls import path from .views import index #[1]views.pyを呼び出し urlpatterns = [ path('index/', index), #[2] ] |
urls.pyは利用者からのリクエストを適切に振り分けるために使用する。
リクエストの振り分けは、利用者からのURLに応じてviews.pyに記載されている関数やクラスを呼び出すことで行う。
例えば、ブログアプリのトップページを見たいならviews.pyのこの関数、記事一覧のページを見たいならviews.pyのこの関数。。。という具合に行う。
[1]ではvies.pyをインポートしている。
viewsの前にドット(.)がついているが、これはurls.pyと同じディレクトリにあるviewsということを示している。あ
[2]では、URLの末尾にindex/が含まれていた場合に、views.pyのindexという名前の関数を呼び出している。
開発用サーバーを起動し、以下のURLでブラウザから検索すると、
views.pyのindex関数が呼ばれ、ページ(htmlファイル)が返される。
http:/127.0.0.01:8000/index/
views.pyの編集
~デスクトップ/Blog/Blog_app/views.py
1 2 3 4 5 6 7 |
from django.shortcuts import render # Create your views here. #[1] def index(request): template_name = "blog_templates/index.html" return render(request, template_name) |
views.pyはurls.pyから呼び出されて、利用者からのリクエストに応じて、所定の場所にあるhtmlファイルなどを返す。
これによって、利用者がブラウザ上でページを表示させることができる。
[1]ではindex関数を定義している。
実際に利用者に表示されるページの情報はindex.htmlが持っている。
変数tamplate_nameには、index.htmlのある場所(パス)を格納している。
ディレクトリ構成を見ると、blog_templatesというディレクトリがあるが、その中にあるindex.htmlを変数template_nameに格納している。
※ただし、今はまだindex.htmlが存在していないので、次の手順で作成する。
returnの行では、利用者に対してindex.htmlの内容を返している。
この返された情報を使うことで利用者側にページが表示される。
htmlファイルを作成
次にblog_templatesディレクトリでindex.htmlというファイルを作る。
※Windowsなら右クリックで新規作成して.htmlとして保存しても良いし、コマンドプロンプトなら以下のコードでも良い
“type nul > index.html”
そして、作成したindex.htmlの内容は以下の通りにする。
~デスクトップ/Blog/Blog_app/templates/blog_templates
1 |
<p>"Hello World!!"</p> |
これで、単なるHello World!!を表示するhtmlファイルを作成することができた。
現在のディレクトリ構成は以下の通り。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
デスクトップ └Blog ├Blog_app │ ├migrations │ ├__init__.py │ ├adming.py │ ├apps.py │ ├models.py │ ├tests.py │ ├views.py │ ├urls.py │ └templates │ └Blog_templates │ └index.html #新規作成 ├db.sqlite3 ├config │ ├・・・ │ └urls.py ├env_blog └manage.py |
実際にページを表示
実際にページを表示してみる。
ルートディレクトリ(manage.py)のあるディレクトリで、以下のコマンドを実行する。
~デスクトップ/Blog/
1 |
python manage.py runserver |
このコマンドは開発用サーバーを起動するコマンド。
起動できたら、ブラウザから以下のURLでアクセスしてみる。
1 |
http://127.0.0.1:8000/Blog_app/index/ |
このようにHello Worldとだけ表示されているページが表示されていれば成功。
Django記事一覧
前回:【Django】models.pyでモデル(DBのテーブル)を作成する
コメント