DjangoでHello World

Django

開発環境の構築

Ubuntu 14.04のインストールが完了した状態から開始します。

今回のDjangoのために独立したPython環境を構築するため、virtualenvwrapper[*] をインストールします。

$ sudo apt-get install virtualenvwrapper
[*]virtualenvwrapper は Ian Bicking の virtualenv ツールの拡張機能です。この拡張機能は仮想環境の作成・削除を行ったり、開発ワークフローを管理するラッパーを提供します。このラッパーを使うことで、開発環境の依存関係による競合を起こさず、同時に複数のプロジェクトで作業しやすくなります。

Python3を使いたいため、virtualenvwrapperにPython3のパスを渡す必要があります。Python3のパスを調べます。

$ which python3
/usr/bin/python3

virtualenvwrapperを使い、独立したPython環境を構築します。django_hello_worldは今から作る環境の名前なので、任意の名前を与えることができます。

$ mkvirtualenv -p /usr/bin/python3 django_hello_world

環境の構築に成功していれば、シェルの入力行の一番左に環境名が加えられているのが確認できます。

(django_hello_world)username@hostname:~$

Pythonのバージョンを確認してみましょう。先ほどPython3を指定したので、pythonコマンドはPython3を使うようになっています。

$ python --version
Python 3.4.0

これで開発環境の構築は完了です。

Djangoアプリケーションのひな形作成

まず、Django本体をインストールします。

$ pip install django

開発するアプリケーションを置くディレクトリに移動します。ホームディレクトリで開発する人や、すでに移動している場合は不要です。

$ mkdir ~/workspace
$ cd ~/workspace

Djangoアプリケーションのひな形を作ります。

$ django-admin startproject helloworld

生成されるファイルの構成はこうなっています。一番上のhelloworldがプロジェクト、二番目のhelloworldがアプリケーションです。

helloworld
├── helloworld
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py

ひな形アプリケーションの実行

manage.pyと同じ階層に移動します。

$ cd helloworld

djangoアプリケーションを起動します。デフォルトでは8000番ポートで起動します。

$ ./manage.py runserver

8000以外のポートを使用したい場合はポート番号を与えることができます。

$ ./manage.py runserver 8080

ブラウザで http://localhost:8000 にアクセスすると、ここまでうまくできていれば、このような画面を見ることができます。

Django

任意の出力に変更する

今はまだ、URLにアクセスするとDjangoのデフォルトのページが出てきています。これを任意の出力(Hello world)に変更します。

urls.pyと同じ階層にviews.pyを作成し、以下の内容にします。

from django.views.generic import View
from django.http import HttpResponse


class Index(View):
    def get(self, request):
        return HttpResponse('Hello World')

メソッド名のgetはHTTPリクエストメソッドのGETに対応しています。

次にurls.pyで先ほどのviewとURLを関連付けるため、以下の内容にします。

from django.conf.urls import patterns, include, url
from django.contrib import admin
from . import views

urlpatterns = patterns('',
    url(r'^$', views.Index.as_view()),
    url(r'^admin/', include(admin.site.urls)),
)

この行のurl関数の第一引数の正規表現にマッチするURLへのアクセスがあった場合に、第二引数のviewを実行するという内容です。

url(r'^$', views.Index.as_view()),

Djangoを一度停止して、もう一度起動したあとに URL にアクセスすると「Hello World」という結果を得られます。

$ ./manage.py runserver

コメント

2015 - 2017 (c) 成瀬基樹