Djangoでのブログの始め方3

Python

今回は前回に引き続きDjangoでのブログの始め方について記事を書きたいと思います。今回はDjangoプロジェクトに登場するファイルについて説明したいと思います。

今回説明するファイルたち

以下ファイルについてこれから説明していきたいと思います。

  • db.sqlite3
  • manage.py
  • requirements.txt
  • admin.py
  • models.py
  • urls.py
  • views.py
  • setting.py

db.sqlite3

このファイルはデータベースのファイルです。sqlite3というデータベースをDjangoでは利用しています。以前の記事でも説明しましたが、models.pyでデータベースのスキーマを設定し、そのスキーマに沿ったデータがdb.splite3に保存されていきます。ほかデータベース(MySQL,PostgreSQL)はサーバとして起動してデータベースサーバに接続してデータのやり取りをしていますが、sqlite3はサーバレスでこのファイルにすべてのデータが詰め込まれます。そのため、簡単にデータベースを立てることができます。

manage.py

このファイルはDjangoプロジェクトを操作・管理するためのコマンドラインツールです。djangoに関するコマンドは基本的にpython manage.py ~~~みたいな感じでmanage.pyに記載されているコマンドを実行していきます。なので、こちらからは基本的にはいじりませんが、Djangoのコマンドを実行するうえで重要なファイルなんだなと覚えてください。

requirements.txt

このファイルはPythonプロジェクトで使っているライブラリを一覧化したテキストファイルです。これは仮想環境内で非常に有用で、仮想環境内でインストールしたライブラリを一覧化してrequirements.txtに保存することで、コマンド一つでその一覧化したライブラリをインストールすることができます。具体的には以下コマンドを実行するとライブラリを記録・インストールできます。

必要なライブラリがインストールされている仮想環境で以下のコマンドを実行

Plaintext
pip freeze > requirements.txt

すると以下のようにインストールされたライブラリが一覧化される。

以下コマンドを実行するとrequirements.txtに記載されてるライブラリがすべてインストールされる。

Plaintext
pip install -r requirements.txt

admin.py

このファイルはDjangoの管理ページに関する設定をすることができるファイルです。管理画面に表示するデータを設定したり、表示項目、検索機能、フィルターなどのカスタマイズもすることができます。例えば、以下のようにadmin.pyを作成すれば、以下のような管理画面を作成することができます。

Python
from django.contrib import admin
from .models import Post

admin.site.register(Post)

models.py

このファイルはデータベースのスキーマを設定することができます。SQLで言う、CREATE文の役割をこのファイルで置き換えることができます。例えば、Usersテーブルを作成するとしたら以下のようにmodels.pyを作成することで実現することができます。

Python
from django.db import models

class Users(models.Model):
    id = models.IntegerField(unique=True)
    name = models.CharField(max_length=30)
    age = models.IntegerField(max_length=3)

    def __str__(self):
        return self.name

urls.py

このファイルは名前の通りURLの設定をすることができるファイルです。トップページはこのurlで表示したい、という内容をこのファイルに記載していきます。何故か各アプリディレクトリの中にurls.pyは最初から作られていないので、手動で作成をしましょう。以下は、実際にトップページのURLを設定するときのurls.pyの内容です。

Python
from django.urls import path
from .views import top

urlpatterns = [
    path('', top, name='top')
]

また、setting.pyなどが入っているメインのアプリディレクトリにあるurls.pyも編集をする必要があります。以下のように編集することで各アプリ内にあるurls.pyと紐づけることができます。

Python
from django.contrib import admin
from django.urls import path, include

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

views.py

このファイルはそのURLに対して何を表示するかという内容を設定するファイルです。Djangoにおいてバックエンド側において一番凝る場所かなと個人的には思います。テンプレート(HTML)やデータベース(models.py)の橋渡し、司令塔のようなポジションなのかなと思います。関係としては以下の図みたいな感じです。(自分のイメージですが。。)

実際のコードとしては以下です。以下に関してはtop.htmlの内容をurls.pyから呼び出されたら表示するという簡単な内容なのですごくシンプルです。

Python
from django.shortcuts import render

def top(request):
    return render(request, 'blog/top.html')

setting.py

最後はsetting.pyです。これ最後に書きましたが、最初に書いた方が良かったかもと今更に思いました。なぜならいつも自分が最初にいじるファイルだからです。とは言え、Djangoプロジェクトを作っている最中にもよく触ったりしますが、、このファイルはその名の通りプロジェクト全体の設定をするファイルです。定番的な使い方は、プロジェクトを立ち上げたあとまずこのファイルでタイムゾーンの変更、言語の変更、テンプレートファイルの設定、データベースの情報登録(sqlite3以外を使う場合)などですね。

おわりに

ここまで見ていただきありがとうございます。今回はDjangoで出てくる主要なファイルたちのご紹介でした。まあ、他にも多くのファイルが出てくるのですがそれはおいおい紹介しましょう。次回は早速ブログの作成手順について書きたいとおいます!大体環境構築からトップページを表示するところまで書きたいかなと考えています。次回もぜひみにきてください!

コメント

タイトルとURLをコピーしました