【Django】簡単なSNSアプリを開発する③~ルーティング設定~
スポンサードリンク
おはようございます。Shotaです。
今回の記事では、前回と同様にDjangoで簡単なSNSアプリを開発するための方法を解説していきます。
今回の記事では、ルーティング設定について軽く解説します。
▼前回の記事はコチラ
shotanukumizu-1000.hatenablog.com
▼初回の記事はコチラ
shotanukumizu-1000.hatenablog.com
ルーティング設定
最初に_project/urls.py
を作成し、以下のコードを書いてください。
#_project/urls.py from django.contrib import admin from django.urls import path, include from django.conf.urls.static import static from django.conf import settings urlpatterns = [ path('admin/', admin.site.urls), path('mdeditor/', include('mdeditor.urls')), path('', include('_app.urls')), #追加 ] if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
以下のコードを新しく変数urlapatterns
に追加することで、_app
フォルダにあるurls.py
に書かれているURLの処理をDjango側に反映させられます。
path('', include('_app.urls')),
次は、_app/urls.py
を新しく作成して、以下のコードを書いてください。
#_app/urls.py from django.urls import path from . import views urlpatterns = [ path('', views.index_func, name='index'), #後で追記 ]
次は、templates
フォルダにアクセスして新しくindex.html
を作成してください。そして、以下のコードを書いてください。
<!----templates/index.html----> {% extends 'base.html' %} {% block title %} <title>SNSApplication</title> {% endblock title %} {% block content %} <h1>Hello Python.</h1> {% endblock content %}
{% extends 'base.html' %}
これをhtmlファイルの冒頭に書くことで、templates/base.html
のコードやその構造をそのまま継承できるようになります。
次に、_app/views.py
にアクセスして、以下のコードを書いてください。
#_app/views.py from django.shortcuts import render def index_func(request): return render(request, 'index.html', {})
これを書くことで、htmlにDjangoの処理を追加できるようになります。
ここで、以下のコードについて軽く説明を入れておきます。
def index_func(request): return render(request, 'index.html', {})
こちらはtemplate/index.html
に遷移させるための処理を書いています。これがないとエラーが発生しますので十分に注意してください。
主なコードの構造は以下のとおりです。
- 関数
index_func
を定義し、第一引数にrequest
を用意する。request
は、サーバにアクセスするためのHTTPレスポンスをそのまま表している。
- 関数
index_func
は戻り値として関数render
で呼び出した値を設定している。これは、第一引数にHTTPレスポンスを表すrequest
を用意し、第二引数に対象となるテンプレート(この場合はtemplates/index.html
)を用意し、第三引数に持ってくるデータを用意する。(この場合はまだデータを用意していないので空のままにしておく。データが空の場合は{}
で表現する)
これでDjangoのサーバを立ち上げ、127.0.0.1:8000/
にアクセスしてください。そうすれば、index.html
がブラウザ上に表示されると思います。
おわりに
今回の記事では、Djangoでルーティング設定を行うための方法を解説しました。
次回の記事では、Djangoでログイン機能を実装するための方法について詳細に解説していきます。