# Python jdango へ挑戦!web サーバー構築するまで

今まで PHP Laravel を仕事で使ってきたので、フレームワークに依存しすぎてフレームワークなしではなかなか開発が厳しくなりました。仕事が効率的になり、安全かつスピーディーにプロジェクトを開発できることがなかなかのメリットですが、そろそろ PHP から脱却して幅を広げる時期と感じましたので、Python をもっと本格的に始めたいと思います。

ひとまず、Django とは Python の Web アプリケーション開発用フレームワークです。
Django の特徴として主に以下が挙げられます。

  • ユーザ認証
  • セッション管理
  • キャッシュシステム
  • ページング
  • データのシリアライズ
  • Python の豊富なライブラリ

# Python 3.x をインストール

pip で Django インストール

python3 -m pip install Django

Django をインストールすると、
django-admin というコマンドを使用することができるようになります。
このコマンドを使って新規プロジェクトを作成することができます。

# Django admin について

  • check
  • compilemessages
  • createcachetable
  • dbshell
  • diffsettings
  • dumpdata
  • flush
  • inspectdb
  • loaddata
  • makemessages
  • makemigrations
  • migrate
  • optimizemigration
  • runserver
  • sendtestemail
  • shell
  • showmigrations
  • sqlflush
  • sqlmigrate
  • sqlsequencereset
  • squashmigrations
  • startapp
  • startproject
  • test
  • testserver

django-admin 使って myDjango 作成

django-admin startproject myDjango

作成後のディレクトリ構成

┣ myDjango
┃   ┠─ __init__.py
┃   ┠─ asgi.py
┃   ┠─ settings.py
┃   ┠─ urls.py
┃   ┗─ wsgi.py
┗━━━ manage.py

init.py:[プロジェクト名]フォルダが Python のパッケージであることを証明する。中身派から。
setting.py:Django プロジェクトの様々な設定を記述する。
manage.py:django-admin コマンドを使用する際のショートカットスクリプト。開発サーバの立ち上げ、マイグレーションなどに使う。
urls.py:ルーティングについて記述する。
asgi.py、wsgi.py:非同期処理の実装などで使うファイル。

サーバー立ち上げよう!

python3 manage.py runserver
# Watching for file changes with StatReloader
# Performing system checks...
#
# System check identified no issues (0 silenced).
#
# You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, # contenttypes, sessions.
# Run 'python manage.py migrate' to apply them.
# November 01, 2022 - 13:52:11
# Django version 4.1.3, using settings 'myDjango.settings'
# Starting development server at http://127.0.0.1:8000/
# Quit the server with CONTROL-C.

http://127.0.0.1:8000/ よりトップページ立ち上げました

You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.

# マイグレーション

python3 manage.py migrate

DB についての設定は myDjango/settings.py にあります。

# Database
# https://docs.djangoproject.com/en/4.1/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

ENGINE は、使用するデータベースのエンジンを指定します。
NAME は、参照するファイルを指定します。
デフォルトは sqlite に設定しています

Github から Django clone

git clone https://github.com/django/django.git

新しい仮想環境作成

python3 -m venv ~/.virtualenvs/djangodev

.virtualenvs/ にすべての仮想環境を置く

設定を有効化

source ~/.virtualenvs/djangodev/bin/activate

# source使えない環境なら
. ~/.virtualenvs/djangodev/bin/activate

Windows の場合

...\> %HOMEPATH%\.virtualenvs\djangodev\Scripts\activate.bat

pip install をする

python -m pip install -e ./

つづく

2022-11-08
  • python