Self-Curation

新卒社会人で営業マンになりました

【初めてのPython環境構築】仮想環境の設定とDjango導入まで

f:id:scuration:20200607213312p:plain

プログラミングについては冬頃にRubyを少しかじった程度でした。

しかし長期的に考えると割とトレンドである?Pythonを深く学びたいと思っている今日この頃。

今日はWindowsPythonインストール~Django導入までを記事にしたいと思います。


【目次】

Djangoとは

DjangoというのはWEBアプリ作成フレームワークの1つです。

WEBアプリ開発によく使う機能をプリセットで用意しているので、WEBアプリ開発を効率良く進めることができます。

PHPだったらCakePHPRubyだったらRailsと他の言語でもフレームワークを使うことは可能ですし、Django以外にもPythonフレームワークは存在します。

例えば機能が最小限に抑えられた「Flask」なども存在しますが、Djangoは機能面で充実している分は学習難易度が高くなるそうです。

導入の流れ

やることの全体観

先に導入までの流れでやることを列挙すると以下のようになります。

MacにはPythonがデフォルトでインストールされているようですが、Windowsでは手動でインストールする必要があります。

Django開発用に仮想環境を構築
・仮想環境を動かした状態でDjangoをインストール

なので「仮想環境をどうして構築するのか」→「仮想環境を実行してインストールする方法」→「Djngoで実際に動かしてみる」という流れで書かせてもらえればと思います。

Pythonのインストール

先ほどお話したようにMacと違ってWindowsではPythonを導入するところから始めなければなりません。

www.python.org

上記Python公式サイトを開きDownloadを開くと、自動的にWindows向けバージョンのダウンロードリンクが開いていると思います。

基本的には最新バージョンのインストーラをダウンロードしたので問題ございません(この記事を書いている時点ではVer.3.8.3)。

f:id:scuration:20200607203657p:plain

ちなみに自分は32bit版、64bit版の表記は気にせず上記画像のボタンからダウンロードしました。今のところ問題は起きてません。

あとはインストーラーを実行して流れに沿ってインストールしちゃってください。

このときPathに追加する手間を省けるように"Add Python 3.x to PATH"にはチェックを入れてください!

※「Pathに追加する」というのはフルパスを入力しなくても、省略された記述でプログラムを実行可能にするための作業です。

Djangoの導入

ここから先はDjangoアプリ開発する用の仮想環境構築と、Djangoのインストールについて説明します。

仮想環境とは?なぜ作る?

なぜ仮想環境を作るのか?

それはPythonで開発などを行うときに用途によって環境を使い分ける目的があります。

用途によって仮想環境を作ることは、同一端末で複数のアプリを開発するときに役立ちます。
例えばアプリAとアプリBを開発するときに片方の実行環境がDiango2、もう片方がDiango3といった場合でも複数PCを用意する必要がありません。

実際にDiangoをインストール方法を説明しているサイトでも仮想環境について先に説明しているサイトが多いのではないでしょうか?

pipとvirtualenvの導入

pipというのはPythonにおけるパッケージ管理ツールです。

パッケージというのは簡単に「ある機能を果たすための記述をまとめたもの」という認識で良いかと思います。

公式パッケージとサードパーティパッケージが存在します。

pipを使うことでPythonにおけるサードパーティパッケージの管理が楽になります。

長くなりましたが仮想環境を構築する「virtualenv」というパッケージについても、pipを用いてインストール・管理します。

$ pip install virtualenv

インストール時に何も弄ってなければpipはインストールされているはずなので、上記コマンドでpipを用いたvirtualenv導入が可能です。

$ pip freeze
…
virtualenv==20.0.21
||

ちなみにpipでインストールされているパッケージは上記コマンドで取得できます。
virtualenvが入っていたらきちんと導入されています。

**仮想環境の用意・使い方

自分がWindowsのPCしか持っていないので引き続きWindows環境となります。

ターミナルのcdコマンドで仮想環境を設定したい場所に移動しましょう。

>|terminal|
$ cd C:\Python

仮想環境を作りたいディレクトリで以下コマンドを叩きます。

python -m venv env

「C:\Python」に仮想環境「env」のフォルダが作成されているはずです。

Windowsで仮想環境を実行するためには以下のコマンドを実行します。

c:\Python> .\env\Scripts\activate.bat


するとターミナルの画面が新しくなって

(env) C:\Python\env>

と表示されていると思います。

仮想環境を終了するには「deactivate」を叩くだけです。

C:\Python\env>$ Scripts\activate

Djangoのインストール

前項を読んでDjango用の仮想環境は立ち上げられましたか?

ここからDjangoをインストールしてきたいと思います。

先ほどvirtualenvをインストールしたときと同じく以下コマンドを叩くだけです。

(env) $ django install django

f:id:scuration:20200607210510p:plain

最初仮想環境立ち上げずにインストールしてしまったときのものですが、ご覧のように進むかと思います。

Djangoでプロジェクト&アプリ作成

DjangoまでインストールできたらWEBアプリの開発に取り組んで参りましょう。

順番としては「プロジェクト作成」→「アプリ作成」→「中身を作る」という流れになります。

ここではアプリ作成して、WEBブラウザ上で一旦実行してみるところまで書きたいと思います。

プロジェクトとアプリの違い

まずアプリから説明した方が分かりやすいと思うのですが、アプリについては文字通りの認識で大丈夫です。

プロジェクトというのはアプリの上位に来るモジュールであり、1つのプロジェクトの中に複数のアプリが含まれていることがあります。

例えばECサイトを制作する場合は「ECサイト」プロジェクトの中に、「カート機能を持つアプリ」「製品一覧を表示するアプリ」といったアプリを作成します。

最終的なディレクトリ構造

まず任意のディレクトリにプロジェクトを作成すると以下のようなファイル構造になります。

sampleproject
│─manage.py

└─sampleproject
asgi.py
settings.py
urls.py
wsgi.py
__init__.py

このmanage.pyを含むsampleprojectディレクトリにアプリを作成していきます。
例えば1つsampleappというアプリを作成すると以下のような構成になります。

sampleproject
├─manage.py

├─sample
│ │ admin.py
│ │ apps.py
│ │ models.py
│ │ tests.py
│ │ views.py
│ │ __init__.py
│ │
│ └─migrations
│ __init__.py

└─sampleproject
│ asgi.py
│ settings.py
│ urls.py
wsgi.py
│ __init__.py

└─__pycache__
settings.cpython-38.pyc
__init__.cpython-38.pyc

最初は覚えにくいですがプロジェクト名のディレクトリの中にプロジェクトフォルダとアプリフォルダ、それからmanage.pyが並列している状態なんですね。

Djangoでプロジェクト作成

以下コマンドでmysiteという名のアプリ名(WEBサイト)を作成してみます。

 c:\Python\site>django-admin startproject mysite

するとsiteフォルダにmysiteというディレクトリが静かに生成されます。

作成したディレクトリの構造

mysite
├ mysite
│   ├ __init__.py
│   ├ asgi.py
│   ├ setting.py
│   ├ urls.py
│   └ wsgi.py
└ manage.py

Djangoで新規にWEBサイトを作成すると上記ファイル構成が生成されるはずです。

アプリの作成

※この手順を踏まなくてもプロジェクトを作成したら次項の「サーバー起動」に進んでしまって大丈夫です。

ここでプロジェクト「mysite」の中にアプリ「sample」を作成するには以下のように叩きます。

c:\Python\site>django-admin startproject mysite

(django) c:\Python\site>cd mysite

(django) c:\Python\site\mysite>python manage.py startapp sample

(django) c:\Python\site\mysite>      

サーバー起動の方法

「サーバーを立ち上げる」とは、「開発したWEBアプリをローカルでテストするための作業」です。

動作確認したいプロジェクトのフォルダを指定してサーバーを立ち上げると、そのプロジェクトがローカルサーバーに展開されます。

この状態でブラウザのアドレス欄にURLを入力すると、実際に動作するか確認することができます。

$ manage.py runserver

まず起動したいプロジェクトのディレクトリを開いた状態で上記コマンドを叩きます。
するとローカルサーバー上にプロジェクトが展開されるはずです。

この状態でブラウザのURL欄に以下を入力して開くと、Django初期のトップページが表示されます。

http://127.0.0.1:8000/

f:id:scuration:20200607213112p:plain
こんな感じで「成功したよ!」と祝福するページが表示されます。

ローカルでサーバーが起動している状態を停止するには「Ctrl+C」を押します。

=====

最後まで読んでいただきありがとうございます。

ここまで無事動作しましたでしょうか?

自分としてもPythonでやりたいことのイメージは何となくあるので、次回以降はより具体的なアウトプットができれば良いなぁと思ってます。