Djangoでビューを作ってみます。
exampleプロジェクト、testappアプリケーションの構成は下記の通りです。
フォルダ構成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
example │ db.sqlite3 │ manage.py │ ├─example │ │ settings.py │ │ urls.py │ │ wsgi.py │ │ __init__.py │ └─ │ │ └─testapp │ admin.py │ apps.py │ models.py │ tests.py │ views.py │ __init__.py │ └─migrations __init__.py |
example/testapp/views.pyを編集
views.pyには、pythonでの処理を行ってから、レスポンスにビューを渡します。
今回は文字列を返していますが、htmlファイルなどを渡すことができます。
1 2 3 4 |
from django.http import HttpResponse def index(request): return HttpResponse("Hello Django") |
example/testapp/urls.pyを作る
アプリケーション単位で、urlの設定をします。
testappフォルダ内にurls.pyを作り、先ほど作ったviews.pyのindexをセットします。
1 2 3 4 5 6 7 |
from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), ] |
example/urls.pyの編集
こちらは、exampleプロジェクトのurls.pyです。testappのurls.pyと混同しないように気を付けましょう。
プロジェクトを作ったときのデフォルトの状態
1 2 3 4 5 6 |
from django.contrib import admin from django.urls import path urlpatterns = [ path('admin/', admin.site.urls), ] |
このファイルに、testappのurls.pyの設定をincludeメソッドで適用させ、urlパターンを追加します。
編集後
1 2 3 4 5 6 7 |
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('testapp/', include('testapp.urls')), path('admin/', admin.site.urls), ] |
これで、runserverで起動して
http://127.0.0.1:8000/testapp/にブラウザでアクセスすると、
views.pyのindexメソッドで指定したレスポンスが返ってきます。