環境構築(Windows)
鬼簡単です。
以下サイトからインストーラーをダウンロード
https://www.python.org/
多分その時のstable版がここに載ると思うのでバージョン番号はこの記事と違う可能性があります。
インストーラーを実行すると“Add Python 3.9 to PATH”というチェックボックスがあるので(デフォルト未チェック)、こちらにチェックを入れます。
コマンドラインからpythonコマンドが使えるようするための「パスを通す作業」を親切にやってくれる感じです。
インストールが完了したらVSCodeなどでターミナルから以下コマンドを打ってみましょう。
python --version
無事にバージョン番号が出ればもうpythonが使える状態です。
フレームワークを追加しよう
前項だけでもpythonの構文を試したりなんだりはもちろんできますが、いきなりそれっぽい何かを作ってみよう、となったときにはフレームワークはかかせません。ここではDjango(ジャンゴ)というpythonのフレームワークをいきなりぶっこんでみようと思います。
djangoのインストール
pip install django
Successfullyと出ればOK。
インストールの確認は以下
python -m django --version
この記事では割愛しますが、プロジェクトごとにpythonのバージョンやパッケージを管理したい場合はvirtualenvというのを入れるのがよさそう。
https://python.keicode.com/devenv/virtualenv.php
インストールされているパッケージの確認方法
pip freeze -l
プロジェクトの作成
続いてdjangoを使ったプロジェクトの作成
任意のディレクトリを作成しそこで以下コマンド
django-admin startproject ****
****の部分は任意のプロジェクト名ですね。
django-admin startprojectはお決まりの呪文という認識でOK
この記事ではtestPythonというプロジェクトを作成します。
以下の構造のフォルダ、ファイル群が生成されます。
C:.
│ manage.py
│
└─testPython
asgi.py
settings.py
urls.py
wsgi.py
__init__.py
生成されたディレクトリに移動(manage.pyがある階層)で早速起動してみましょう。起動コマンドは以下
※migrationエラーなどがでますがひとまず気にせず。
python manage.py runserver
http://127.0.0.1:8000にアクセスして以下が表示されれば成功です。
アプリを作ってみる
djangoではプロジェクトとアプリケーションというのが明確に分かれているらしく、Node.jsのExpressのようにここにゴリゴリと書いていくのではなく、まずアプリケーションを作るのがセオリーのようです。
先程同様manage.pyの階層で以下コマンドでアプリケーションを作成します。
python manage.py startapp testApp
プロジェクトと並列に、testAppというアプリケーションが作られました。
Viewの作成
ルーティング周りを理解するために公式のチュートリアルに従ってアプリのインデックスページを作ります。
testApp/views.py
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
testApp/urls.py(新規作成)
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
testPython/urls.py(プロジェクトのディレクトリ)
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('testApp/', include('testApp.urls')),
path('admin/', admin.site.urls),
]
この状態でもう一度python manage.py runserverを実行し、http://127.0.0.1:8000/testApp/を開いてみます。
良さそうですね。
DB接続
そろそろmigrationエラーが気持ち悪いのでDBの設定をします。
デフォルトではSQLiteが組み込まれているようなのでなんの設定もせずに使えるみたいなのですが、アンチSQLiteなのでMySQLに接続します。
まずはドライバインストール
pip install mysqlclient
プロジェクトのディレクトリの以下を開きます。
testPython\settings.py
DBを指定している箇所を変更
'ENGINE': 'django.db.backends.mysql',
続けて予め作成しておいたMySQLの情報を追加する
※私のローカルでの設定例です
ついでにタイムゾーンも変更
上記が終わったらmigrateしてみる
python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
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
このように完了すれば成功。
何かいろいろできています。
管理サイトの利用
djangoのびっくりポイントです。
python manage.py createsuperuser
上記コマンドから対話的にアドミンユーザーを作成。
サーバー起動し、以下コマンドで管理画面が立ち上がる
http://127.0.0.1:8000/admin/
つづく