Part1 Djangoの説明
Djangoは,Pythonで書かれたWebアプリケーションフレームワークである.この記事では簡単にwebアプリケーションを作成するためのサーバー構築を説明する.この内容を発展させてReactとの連携,MySQL,PostgreSQLへの接続,PaaS上へのデプロイも可能である.
Djangoでできること
Webアプリケーション開発
ブログ,SNS,ECサイトなど,様々なWebアプリケーションを開発できる.
API開発
RESTAPIなどのAPIを開発できる.
データ管理
データベースとの接続,CRUD操作などが簡単にできる.
ユーザー認証
ユーザー登録,ログイン,ログアウトなどの機能を実装できる.
管理画面
開発したWebアプリケーションの管理画面を自動生成できる.
Djangoの特徴や利点
1.高速な動作
標準でキャッシュ機能が備わっており,大規模サービスにも対応できる.
2.開発効率の高さ
豊富な機能が標準搭載されており,開発時間を短縮できる.
3.使いやすさ
Pythonの構文に基づいており,初心者でも比較的習得しやすい.
4.セキュリティ
CSRF対策やSQLインジェクション対策など、セキュリティ機能が充実している.
5.拡張性
豊富なライブラリやサードパーティ製ツールが存在し,拡張性が高い.
Djangoの利用例
YouTube
Instagram
Pinterest
Spotify
Dropbox
Part2 Django環境構築
必要な環境
1.Python 3.6以上
2.Django
(3.仮想環境)
Dockerを用いて環境構築する方法は以下の記事で紹介している
https://qiita.com/tarakokko3233/items/39e91cd39a12d1507b06
1.Pythonのインストール
Python公式サイトから,OSに合ったインストーラーをダウンロードする.
Python公式サイト
ダウンロードしたインストーラーを開いてPythonをインストールする.
2.仮想環境を作成する(推奨)
仮想環境は,開発環境と本番環境を分離するために使用される.
仮想環境の作成
$ python -m venv venv
python -m venv venv
でcommand not found: python
が出るならばpython
をpython3
と書き換えて実行すること.
カレントディレクトリにvenvファイルが作成される.(venvファイルはPython仮想環境を構築するためのフォルダと思ってください)
仮想環境のアクティベート
Mac用
$ source venv/bin/activate
Windows用
$ venv\Scripts\activate
3.pipのインストール
pipは,Pythonパッケージをインストールするためのツール.
仮想環境が有効化されている状態で,以下のコマンドを実行してpipをインストールする.
$ python -m ensurepip --upgrade
4.Djangoのインストール
仮想環境が有効化されている状態で,以下のコマンドを実行してDjangoをインストールする.
$ pip install django
python3
で実行した人はpip
でエラーが起きる場合があるのでpip3
で実行すること
Part3 Djangoプロジェクトの作成
1.Djangoプロジェクトを作成する
プロジェクトを作成したい任意のディレクトリに移動する.(デバイスのルートディレクトリに作成するならば不要)
your/project/directry
に任意のディレクトリを指定する.
$ cd your/project/directry
Djangoプロジェクトを作成する.
yourprojectname
は任意のプロジェクト名
$ django-admin startproject yourprojectname
2.Djangoアプリケーションを作成する
カレントディレクトリがyourprojectname
になっていることを確認する.
もしyourprojectname
でないならば以下のコマンドを実行.
$ cd yourprojectname
Djangoアプリケーションを作成.
yourappname
は任意のプロジェクト名
$ python manage.py startapp yourappname
3.設定ファイルの編集
yourprojectname/yourprojectname/settings.py
を開き,
INSTALLED_APPS
の中に
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'yourappname', #これを追加
]
を追加する.これはDjangoにアプリケーションyourappnameを認識させるために必要である.
さらに
ALLOWED_HOSTS
の中に
ALLOWED_HOSTS = [
'localhost',
'127.0.0.1',
]
を追加する.これは後ほどローカルのIPアドレス(開発環境のホスト名)でローカルサーバを立ち上げることを許可するために必要である.
4.ローカルで開発用サーバーが立ち上がるか確認
Djangoプロジェクトがうまく動作するかを確認する.
カレントディレクトリがyourprojectname
であることを確認.
$ python manage.py runserver
コマンドライン上でこのように出力されるかを確認.
Performing system checks...
System check identified no issues (0 silenced).
You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.
1月 01, 2000 - 00:00:00
Django version 4.0, using settings 'yourprojectname.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Edge ,Chrome ,Safari,Firefoxなどで
にアクセスして以下の画面になるかを確認する.
以上でプロジェクト作成完了である.
開発用サーバーを閉じたいならばコマンドライン上でctrl+C
を入力すれば閉じられる.
これでDjangoプロジェクトを作成可能である.
補足
Djangoプロジェクトの階層構造
yourprojectname/
manage.py
yourprojectname/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
yourappname/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
manage.py
Djangoプロジェクトに対する操作を行うための様々なコマンドラインが定義されているファイル.
yourprojectname/_ _ init _ _.py
このディレクトリがPythonのパッケージであること知らせるための空のファイル.
yourprojectname/settings.py
Djangoプロジェクトの設定ファイル.
yourprojectname/urls.py
Djangoプロジェクト全体のURLの定義(エンドポイント定義)
yourprojectname/asgi.py
プロジェクトを提供するASGI互換のWebサーバーのエントリポイント
yourprojectname/wsgi.py
プロジェクトをサーブするためのWSGI互換のWebサーバーとのエントリーポイント
yourappname/_ _ init _ _.py
このディレクトリがPythonのパッケージであること知らせるための空のファイル.
yourappname/admin.py
Django管理画面でアプリケーションのモデルを管理するための設定ファイル.モデルの登録,一覧表示,編集画面の設定などを記述.
yourappname/apps.py
このアプリケーションの設定ファイル.
アプリケーションの名前,モデル,管理画面の設定などを記述する.
yourappname/migrations/_ _ init _ _.py
このディレクトリがPythonのパッケージであること知らせるための空のファイル.
migrations
ディレクトリはデータベースマイグレーションのためのディレクトリ.
モデル(models.py)
の変更に伴い,データベースのスキーマを変更するためのファイルが格納される.
yourappname/models.py
アプリケーションで使用するモデルを定義するファイル.
データベースのテーブルと関連するフィールドを定義する.
yourappname/tests.py
このアプリケーションのテストコードを記述するファイル.
モデルやビューの動作を検証するためのテストコードを記述する.
yourappname/views.py
URLと処理を関連付けるビューを定義するファイル.
ユーザーからのリクエストを受け取り,処理結果を返すコードを記述する.
上記は基本的なファイル構成であり、必要に応じて追加のファイルを作成することができる.
各ファイルの詳しい説明や使用法は以下の記事を参照
引用
Djando公式ドキュメント
https://docs.djangoproject.com/ja/4.0/intro/tutorial01/