【ブログ一覧】 - ますみのブログ

ますみのブログ

パソコンとかプログラミングに関するあれこれ発信してます

【Pythonを覚えよう】Djangoのルーティングの設定をしてみる

Djangoは、PythonのWebアプリケーションフレームワークです。Djangoを使用することで、Webアプリケーションの開発を簡単かつ迅速に行うことができます。さて、わたしの専門分野(?)はPHP、typescript等です。Pythonは基礎文法レベルなので、この機に触ってみようと思ってDjangoに挑戦することにしました本日はDjangoのルーティングについて勉強してみようと思います。とりあえず何か表示するこちらの記事で作成したプロジェクトの主となるフォルダにurls.pyというファイルがありますこのurls.pyというファイルではURLと関数等を結びつける役割をします。まず試しにルートhttp://127.0.0.1:8000にアクセスしたらHello, World!と表示してみます。mypage/urls.pyfrom django.http import HttpResponse # 追加from django.contrib import adminfrom django.urls import pathurlpatterns = [ path('', lambda request: HttpResponse("Hello, world!")), # 追加 path('admin/', admin.site.urls),]無名関数(ラムダ式)を使ってとりあえず画面に文字を表示させてみます。問題なくHello, world!と表示されたらOKです。さて、Djangoではプロジェクトの中にアプリケーションをいくつも持つ構造になっているようです。ドキュメント通りにpollsというアプリケーションを作成してみたいと思います。アプリケーション作成このコマンドでアプリケーションを作成します。python manage.py startapp pollsmanage.pyの部分はDjangoプロジェクトルートのmanage.pyを指定する必要があるため、必要に応じてパスを正確に指定します。こんな感じでpollsが生成されましたもちろんコマンドのpollsの部分は好きに変えて大丈夫です。python manage.py startapp ここが作成するアプリケーション名になるviews.pyを修正先ほど生成したpollsフォルダ内のviews.pyを修正していきますpolls/views.pyfrom django.shortcuts import render# Create your views here.初期状態でこんな感じだと思います。ドキュメント通り以下のコードを追加しますfrom django.http import HttpResponse # 追加from django.shortcuts import render# Create your views here.def index(request): # 追加 return HttpResponse("Hello, world. You're at the polls index.") # 追加この関数ではHello, world. Youre at the polls index.という文字のレスポンスを返します。つまり、あるURLにアクセスしたらこのindexという関数を呼ぶように設定すれば、画面にはHello, world. Youre at the polls index.と表示されるわけです。ではあるURLにアクセスしたらindexという関数を呼ぶという処理を、mypage/urls.pyとpolls/urls.pyに書いていきます〇〇/urls.pyにルーティングを追加どうやらDjangoでは、小さいアプリケーションでのルーティングを設定それを主体のアプリケーションで呼び出しといった流れでルーティングをしていくようです。当記事(ドキュメント通りですが)では、小さいアプリケーションがpolls、主体のアプリケーションがmypageになっています。ドキュメントを見た感じpollsにもurls.pyを作成し、それを主体のmypageのurls.pyで呼び出す必要があるっぽいですまずは小さいアプリケーションのpollsにurls.pyを作成してルーティングを設定します。polls/urls.pyfrom django.urls import pathfrom . import viewsurlpatterns = [ path("", views.index, name="index"),]これを大きいアプリケーションのmypageのurls.pyで呼び出しますmypage/urls.pyfrom django.contrib import adminfrom django.urls import include, pathurlpatterns = [ path("polls/", include("polls.urls")), path('admin/', admin.site.urls),]これでpolls/にアクセスしたらHello, world. Youre at the polls index.と表示されるようになります。今回のまとめDjangoは主となるアプリが小さいアプリをいくつも束ねて管理するフレームワークなのかな?イメージこれは慣れているLaravelやSymfonyにはない概念だったのでびっくりです。大規模なWebアプリケーションを管理するにはめちゃくちゃよさそうな感じがします。最後まで読んでいただきありがとうございます!質問や、こんなことを記事にしてほしい!というのがありましたらTwitterのコメント等で受け付けていますので、お気軽にどうぞ!ますみ - 愛知県在住の20代プログラマー - | @mashmy_98それでは次の投稿もお楽しみに!

2023年05月21日

Read More

ますみ

愛知県在住の20代プログラマーです!

プログラミングと無縁の専門学校を卒業して働き出しましたが、コロナ禍でほぼ無職に...

無職時代に独学でプログラミングを勉強して、未経験からめでたくプログラマーとして採用していただけました。

このブログを見た方が、わたしが独学で勉強していた時期に悩んでいたことで悩まないように...そう願いながら情報を発信しています!

おすすめレンタルサーバー


当サイトはXserverを利用しています。 HTML、CSSで作成したホームページはもちろん、wordpress、Laravel等で作成した高度なアプリケーションも利用可能です!

ますみ

愛知県在住の20代プログラマーです!

プログラミングと無縁の専門学校を卒業して働き出しましたが、コロナ禍でほぼ無職に...

無職時代に独学でプログラミングを勉強して、未経験からめでたくプログラマーとして採用していただけました。

このブログを見た方が、わたしが独学で勉強していた時期に悩んでいたことで悩まないように...そう願いながら情報を発信しています!