プログラム関係の備忘録。技術系記事1000記事以上を目指すブログ

初めてのpython

  • 2021年4月9日
  • 2021年4月14日
  • python
  • 10view
  • 0件

環境構築(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/

つづく