Python Webフレームワーク Djangoの環境を構築する

シェアする

Python の Web フレームワークと言えば、やはり Django でしょう。

他にも Flask や Pyramid などもありますが、ORM やテンプレートエンジンが同梱されている フルスタックな Django が便利で私は好きです。

バージョン

  • CentOS 7
  • Python 3.6.4
  • pip 9.0.1
  • Django 2.0.3

インストール

CentOS 7 と Python 3.6.4 と pip 9.0.1 のインストールは、以前書いた記事「Mac + Vagrant + CentOS 7 で Python3 環境を構築する」を参考にしてください。

今回は、ホスト側のブラウザから確認したいので、Vagrantfile を少し変更してホストオンリーアダプタを足しています。

$ diff Vagrantfile Vagrantfile.org
15c15
< config.vm.box = "centos/7"
---
> config.vm.box = "base"
35c35
< config.vm.network "private_network", ip: "192.168.33.10"
---
> # config.vm.network "private_network", ip: "192.168.33.10"
66,71c66,69
< config.vm.provision "shell", inline: <<-SHELL
< yum install -y https://centos7.iuscommunity.org/ius-release.rpm
< yum install -y python36u python36u-libs python36u-devel python36u-pip
< yum update -y
< reboot
< SHELL
---
> # config.vm.provision "shell", inline: <<-SHELL
> # apt-get update
> # apt-get install -y apache2
> # SHELL

Django のインストール

Django のインストールには、Python のパッケージ管理コマンド pip を使います。

[vagrant@localhost ~]$ sudo pip3.6 install django
Collecting django
Downloading Django-2.0.3-py3-none-any.whl (7.1MB)
100% |████████████████████████████████| 7.1MB 118kB/s
Collecting pytz (from django)
Downloading pytz-2018.3-py2.py3-none-any.whl (509kB)
100% |████████████████████████████████| 512kB 1.2MB/s
Installing collected packages: pytz, django
Successfully installed django-2.0.3 pytz-2018.3
You are using pip version 9.0.1, however version 9.0.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
[vagrant@localhost ~]$

pip でインストールしたパッケージは、pip freeze で確認することができます。

[vagrant@localhost ~]$ pip3.6 freeze
Django==2.0.3
pytz==2018.3
You are using pip version 9.0.1, however version 9.0.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
[vagrant@localhost ~]$

Django と Django の依存関係にある pytz がインストールされました。

さっきから、pip を 9.0.3 にアップグレードしろ言われ続けていますので、アップグレードしますか ^ ^;

[vagrant@localhost ~]$ sudo pip3.6 install --upgrade pip
Collecting pip
Downloading pip-9.0.3-py2.py3-none-any.whl (1.4MB)
100% |████████████████████████████████| 1.4MB 520kB/s
Installing collected packages: pip
Found existing installation: pip 9.0.1
Uninstalling pip-9.0.1:
Successfully uninstalled pip-9.0.1
Successfully installed pip-9.0.3
[vagrant@localhost ~]$

startproject

準備ができましたので、Django を始めましょう。まず最初は、Django のプロジェクトを作るために、startproject を実行します。

[vagrant@localhost ~]$ django-admin startproject mysite
[vagrant@localhost ~]$

雛形が出力されました。(tree コマンドが入っていなかったので、別途インストールしています。)

[vagrant@localhost ~]$ tree
.
└── mysite
    ├── manage.py
    └── mysite
        ├── __init__.py
        ├── settings.py
        ├── urls.py
        └── wsgi.py

2 directories, 5 files
[vagrant@localhost ~]$

startapp

次にアプリケーションの雛形を作りましょう。アプリケーションの雛形は、startapp です。

[vagrant@localhost django]$ cd mysite/
[vagrant@localhost mysite]$ python3.6 manage.py startapp polls
[vagrant@localhost mysite]$ tree
.
├── manage.py
├── mysite
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-36.pyc
│   │   └── settings.cpython-36.pyc
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── polls
    ├── __init__.py
    ├── admin.py
    ├── apps.py
    ├── migrations
    │   └── __init__.py
    ├── models.py
    ├── tests.py
    └── views.py

4 directories, 14 files
[vagrant@localhost mysite]$

runserver

それでは、今まで作った雛形だけのプログラムのページを確認して見ましょう。Django の開発用サーバーコマンドを実行してみます。

の前に、settings.py を一箇所修正します。

ALLOWED_HOSTS = ['*']

これをしないと、外部ホストを受け付けてくれません。

それでは runserver します。

[vagrant@localhost mysite]$ python3.6 manage.py runserver 0.0.0.0:8000
Performing system checks...

System check identified no issues (0 silenced).

You have 14 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.

March 28, 2018 - 04:05:24
Django version 2.0.3, using settings 'mysite.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.

そして、ブラウザで http://192.168.33.10:8000 にアクセスしてみます。

Django の起動を確認することができました。

まとめ

Django を始めるにあたりプロジェクトとアプリケーションを作成しました。

そして、Django の開発サーバー runserver を起動し、ページを確認しました。

これで、Django の開発を始める前の準備は完了です。