Djangoのルーティングを試してみる
準備
CentOS8を起動。
Vagrantfile
Vagrant.configure("2") do |config| config.vm.box = "bento/centos-8.3" config.vm.network "forwarded_port", guest: 8000, host: 8000 config.vm.synced_folder ".", "/vagrant", type:"virtualbox" end
> vagrant up > vagrant ssh
$ sudo dnf install -y python38 $ sudo pip3 install django
Djangoのプロジェクトを作成。
$ cd /vagrant $ django-admin startproject hoge
アプリケーションを作成。
$ cd hoge $ python3 manage.py startapp hoge_app $ vi hoge_app/settings.py ・・・ INSTALLED_APPS = [ 'hoge_app.apps.HogeAppConfig', # 追加 'django.contrib.admin', 'django.contrib.auth', ・・・
ルーティングの設定
urlsを設定。
$ vi hoge/urls.py
・・・ from hoge_app import views urlpatterns = [ path('hello', views.hello), path('admin/', admin.site.urls), ]
viewsに処理を記述。
$ vi hoge_app/views.py
from django.http import HttpResponse def hello(request): return HttpResponse("Hello world!")
Djangoを起動すると、ブラウザから確認できる。
$ python3 manage.py runserver 0.0.0.0:8000
ルーティングの設定2
下記のようにurlsを設定し、
$ vi hoge/urls.py
・・・ from django.urls import path, include urlpatterns = [ path('hoge_app/', include('hoge_app.urls')), path('admin/', admin.site.urls), ]
アプリケーション側にurlsの指定をすることもできる。(こっちのほうが一般的)
$ vi hoge_app/urls.py
from django.urls import path from . import views urlpatterns = [ path('hello', views.hello), ]
Djangoを起動すると、ブラウザから確認できる。
$ python3 manage.py runserver 0.0.0.0:8000