5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Django入門】簡単なブログページを作る際の大まかな流れ ~アプリケーション編~

Posted at

はじめに

未来電子テクノロジーでインターンをしている<小栗>です。
「プログラミング初心者であるため、内容に誤りがあるかもしれません。
もし、誤りがあれば修正するのでどんどん指摘してください。

この記事は、【Django入門】簡単なブログページを作る際の大まかな流れ ~プロジェクト編~
こちらの記事の続きです!

Django Brothersというサイトをまとめた
記事になっているので、Django初心者にはおすすめです!

アプリケーションとは

前回の記事の内容であるプロジェクトは「ウェブサービス全体に関する設定」であるのに対し、アプリケーションとは「ウェブサービスに必要な機能を実現する部分」のことを指します。

アプリケーションを作成する

コマンドはpython manage.py startappです。

/django_blog/
python manage.py startapp blogs

ここで、作られたblogsというディレクトリがアプリケーションの一つであり、blogsディレクトリ内のファイルにコードを書いていきます。

アプリケーションを登録する

先ほど作成したblogsアプリケーションをDjangoプロジェクトに登録する必要があります。

setting.pyファイルを開いて、INSTALLED_APPSの部分に'blogs'を追加します。

django_blog/django_blog/setting.py
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
     'blogs',  #追加する
]

※アプリケーションを作ったら同様に追加します。

Djangoアプリケーションの全体像を把握する

image.png

DjangoBrothersとは順番が違いますが、先に全体像を把握しておいた方が、理解が深まったので先に上の画像でイメージをつかんでおくと良いと思います。

それぞれの大まかなはたらきは、以下です。
#####View
ユーザーは特定のURLにアクセスするとサーバーに対しリクエストを送ります。
そのユーザーからのリクエストをもとに、どのようなHTMLファイルを表示させるか(どのTemplatesを返すか)、どういった内容のデータを表示させるか決める処理をしています。

#####URL
URLに応じてどのViews関数を使うか指定する。

HTMLファイルでページを作成する

####トップページを作成する

django_blog/blogs/ディレクトリ内にtemplatesディレクトリ、その中にblogsディレクトリを作成し、
django_blog/blogs/templates/blogs/という階層を作ります。

そして、このdjango_blog/blogs/templates/blogs/内に

index.htmlファイルを作成し、任意の内容に編集します。

View
===

先ほど上でも紹介したので、Viewについては細かい内容をまとめます。

```python:django_blog/blogs/views.py
from django.shortcuts import render

def index(request):
    return render(request, 'blogs/index.html')

views.py ファイルに上記のコードを書きます。
この関数の内容を分解します。

#####index関数の意味
ユーザーからの情報をもとに、index.htmlを返す関数

#####index関数の引数であるrequestについて
requestはユーザーがURLを入力してサーバーにアクセスするときの情報

#####renderメソッドについて
requestをもとにindex.htmlを表示することを意味している

URLの設定

先ほど作成したhtmlファイルをブラウザ上で表示される様にindex関数とURLを結びつけます。

django_blog/django_blog/urls.py
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('blogs.urls')),
]

urls.pyファイルを上記の内容に書き換えます。
内容を分解してまとめます。

二行目に追加したincludeによってinclude関数が使えるようになります。

#####path('', include('blogs.urls'))がしていること
最初の''が意味するのは、URLが何も指定されていない事を示しています。
なので、pathの1行はhttp://127.0.0.1:8000/にアクセスした場合、blogs.urlsファイルを参照することを意味しています。
#####blogs.urlsについて
blogs.urlsファイルはblogsディレクトリ内に作成するurls.pyファイルのことです。
以下で内容をかみ砕いて説明します。

###blogsアプリケーション内でURLを設定する
今まで触ってきたurls.pyファイルはdjango_blog/django_blog/内のファイルでした。
つまり、プロジェクト内全体のURLを設定していたという認識です。
次はアプリケーション内のURLを設定するので、django_blog/blogs/内に新たにurls.pyファイルを作成して編集します。

django_blog/blogs/urls.py
from django.urls import path
from . import views

app_name = 'blogs'
urlpatterns = [
    path('', views.index, name='index'),
]

#####path関数について
第一引数で空の文字列を指定し、第二引数でviews.indexを指定しています。
これは、URL(http://127.0.0.1:8000/)にアクセスした時は、views.pyのindex関数を実行するように設定をしていることを意味します。
第三引数はURLパスに名前を付けているという事です。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?