# 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 ./
つづく