LoginSignup
8
8

More than 1 year has passed since last update.

virtualenvを使ったDjango開発仮想環境構築〜新規プロジェクト・新規アプリ作成と初期設定までの手順

Last updated at Posted at 2019-11-29

はじめに

まっさらな状態から仮想環境構築〜新規プロジェクト・新規アプリ作成・初期設定までの手順を忘れることがあるので残しておきたいと思います。

Python3系と仮想環境構築ツールであるvirtualenvがインストール済みであることを前提条件とします。

著者の環境は以下となります。

  • MacOS Mojave 10.14.6
  • Python 3.7.5
  • Django 2.2

予め、Djangoの各バージョンで対応しているPythonのバージョンを確認してください。
https://docs.djangoproject.com/ja/2.2/faq/install/#faq-python-version-support

virtualenvを使って仮想環境構築

まず任意の場所(デスクトップ)でこれから作成するプロジェクトを入れるフォルダをmkdirコマンドで作成。(今回例として名前をsampleprojectとする)
cdコマンドで作成したフォルダ内に入る。

$ mkdir sampleproject
$ cd sampleproject

仮想環境を構築する為、以下のコマンドを実行。
名前は任意で構わないが、分かりやすくプロジェクト名-envとした方が良い。

$ virtualenv sampleproject-env

構築した仮想環境に入るには以下のコマンドを実行。
ターミナルの$マークより前に(プロジェクト名-env)と表示されていれば成功。

$ . sampleproject-env/bin/activate
# 以下が表示されていれば成功
(sampleproject-env) $

Djangoを仮想環境内にインストール

引き続き、Djangoを仮想環境内にインストールしていく。
今回は例としてDjango 2.2をインストールする。
2つめのコマンドでバージョンが2.2と表示されればインストール成功です。

(sampleproject-env) $ pip install django==2.2
(sampleproject-env) $ python -m django --version

新規プロジェクト作成

新規でプロジェクト作成する際は、$ django-admin startproject [任意のプロジェクト名] .コマンドで作成できる。(今回は名前をsampleprojectとする)

(sampleproject-env) $ django-admin startproject sampleproject .

上記コマンドの最後に.をつけた場合とつけない場合、以下の違いがある。

.をつけた場合は、余計に1つフォルダを作る手間を省くことができる。

sampleproject(一番最初に作成したフォルダ、コマンド実行場所)/
     └ sampleproject(上記コマンドで作成されたプロジェクト)

.をつけない場合は、コマンドを実行した場所からもう1つフォルダが作成される。
フォルダ構成が一階層増えるイメージ。
冒頭で紹介したmkdirで新規フォルダ作成せずに直接プロジェクト作成する場合に使う。
フォルダ構成が複雑化して分かりにくいので実際の開発ではあまり推奨しない。

sampleproject(一番最初に作成したフォルダ、コマンド実行場所)/
     └ sampleproject/
          └ sampleproject(上記コマンドで作成されたプロジェクト)

新規アプリ作成

新規アプリを作成する際は、manage.pyが存在するフォルダから以下のコマンドを実行する。(今回例として名前をsampleとする)

(sampleproject-env) $ python3 manage.py startapp sample

初期設定

sampleproject内のsettings.pyのTEMPLATESの中身を編集。
HTMLファイルが入っている場所を指定する。(HTMLファイルはBASE_DIRの中のtemplatesフォルダに格納される)
設定できたら、manage.pyが入っているフォルダにtemplatesフォルダを作成。

sampleproject/settings.py
"""省略"""
TEMPLATES = [
    {
        """省略"""
        'DIRS': [BASE_DIR, 'templates'],
        """省略"""
            ],
        },
    },
]
"""省略"""

作成したアプリ名を設定する。(アプリ名は今回例として作成したsampleとする)

sampleproject/settings.py
"""省略"""
INSTALLED_APPS = [
    """省略"""
    'sample',
]
"""省略"""

cdコマンドで作成したアプリのフォルダまで移動。(今回例としてsampleフォルダ)
touchコマンドでurls.pyを新規作成。

(sampleproject-env) $ touch urls.py

projectフォルダ内のurls.pyに作成したアプリの繋ぎこみを設定する。(今回例としてsampleフォルダ)

sampleproject/urls.py
from django.contrib import admin
# includeメソッドを追加
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    # 何もURLを記述しない場合の挙動はrootページ(home画面)となる
    # つまり、sampleアプリを呼び出す
    path('', include('sample.urls')),
]

これで初期設定は完了です。

仮想環境から出る

virtualenvで構築した仮想環境から出るには以下のコマンドを実行。

(sampleproject-env) $ deactivate

仮想環境に再度入る場合は以下を実行。(今回例としてsampleprojectとする)

$ . sampleproject-env/bin/activate
# 以下が表示されていれば成功
(sampleproject-env) $

最後に

AnacondaでDjango開発環境を整えると依存関係の影響やもっと別の問題が起きる可能性を考慮してAnacondaを使った方法を採用しませんでした。
今回、Anacondaをアンインストールしてから環境構築していきました。
Django環境で新規プロジェクト作成するまで苦労しました。

8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8