2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめてのDjangoまとめ1

Last updated at Posted at 2024-11-01

Djangoについて

今回は、DjangoでCRUDのアプリを作成してみました。
色々と整理をしたので、こちらにまとめます。

Djangoとは、Pythonのフルスタックフレームワーク

まず、DjangoはPythonベースのフレームワークです。
他にもFlaskやFastAPIがありますが、
これらに比べると、大規模アプリ作成に向いています。

Rubyで例えると、Ruby on Railsが該当します。
Ruby on Railsは、MVCフレームワークのアーキテクチャですが、
Djangoは、これに似ていて異なる、MVT(Model、View、Templete)です。

昨今では、GAFAがPythonを使用していたことをベースに、
プログラミング言語の使用ランキングでも上位に君臨していますが、
日本の開発現場でも、Pythonを選択されることが非常に増えてきました。

Pythonは、データ分析やAI開発、スクレイピング等、
様々なことができるように、ライブラリも豊富ですが、
フレームワークを使用しての、アプリ開発でも多く使用されています。

今回のDjangoも、とても多くの開発現場で使用されています。
では、長くなってしまいそうなので、
Djangoのアプリ作成の手順の方に移ります。

Djangoの環境構築

環境 既にPythonが入っていることは前提とします。

Ubuntu 22.04.4 LTS
Python 3.9.18

仮想環境を作成する場合、
例えば、django_envという名前で作成すると、

:~/django_prac$ python3 -m venv django_env

作成した仮想環境に入るには、

:~/django_prac$ source django_env/bin/activate
(django_env) yusuke@LAPTOP-2142KMCS:~/django_prac$

(django_env(仮想環境名))となったので、こちらで作成ができました。

次にDjangoをインストール

$pip install django

インストールできているか、
pip listで確認します。

(django_env) yusuke@LAPTOP-2142KMCS:~/django_prac$ pip list
Package           Version
----------------- -------
asgiref           3.8.1
Django            4.2.16
pip               23.0.1
setuptools        58.1.0
sqlparse          0.5.1
typing_extensions 4.12.2

Djangoをインストールできたので、プロジェクトの起動をします。
Djangoは、プロジェクトとアプリケーションという概念があり、
ざっくり、全体的な設定をプロジェクトに、ロジックやDB周りをアプリに記載という、
切り分けになります。

$django-admin startproject django_project

django_projectディレクトリが作成されるので、移動します。

$cd django_project/

移動後にls -l で確認をすると、プロジェクトとmanage.pyが作成されていることを確認できます。

$ ls -l
total 8
drwxr-xr-x 2 yusuke yusuke 4096 Nov  1 09:59 django_project
-rwxr-xr-x 1 yusuke yusuke  670 Nov  1 09:59 manage.py

これでサーバー起動をします。

python manage.py runserver

http://127.0.0.1:8000
アクセスをします。
こちらがブラウザで表示できれば想定通りです。
ちなみに、右上にDjango 4.2とバージョンが表示されます。
Djangoサーバ起動.png

プロジェクトの作成はできたので、
Timezoneの変更をします
プロジェクト配下のsettings.pyの以下を変更します。
(変更前)

LANGUAGE_CODE = "en-us"
TIME_ZONE = "UTC"
(変更後)
LANGUAGE_CODE = "ja"
TIME_ZONE = "Asia/Tokyo"

無題.png
こちらで、Timezoneと、言語が日本に変更されました。

次にマイグレーションを行います。
マイグレーションは、データベースの構造を管理、変更するための仕組みです。Djangoでモデル(models.pyに定義したクラス)を作成や変更した際に、その内容をデータベースに反映するのがマイグレーションの役割です。

作成するアプリのDB設定の反映に使われますが、
まずは、初期設定の反映として必要な作業になります。
Djangoのデフォルトで用意されている管理機能やユーザ認証機能など、標準のアプリケーション用のテーブルがデータベースに作成されます

※デフォルトではSQLiteがDBになっていますが、
他のDBを使用したいのであれば、settings.pyにその記載が必要です。
今回はSQLiteのまま使用します。

python manage.py migrate

成功すると、以下のようなログが表示されます。
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying auth.0012_alter_user_first_name_max_length... OK
Applying sessions.0001_initial... OK
次にアプリケーションの作成をします。

python manage.py startapp django_app

こちらでプロジェクトと同じ階層にアプリが作成されます。
次に、settings.pyに'アプリ名'を追加します。

  INSTALLED_APPS = [
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
    'django_app'
]

こちらで、アプリ作成の準備は整いました。
次の記事では、作成済のメッセージアプリを使い、
CRUDの作り方を説明します。

2
0
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?