Djangoを試してみた

Pythonのフレームワーク Djangoを試してみました。チュートリアルをそのまま、途中までです。

試した環境は、Windows10上のAnacondaです。Djangoはpipなどでインストールされているものとします。

目次

  1. プロジェクトの作成
  2. 開発用ウェブサーバー
  3. アプリケーションの作成

プロジェクトの作成

Djangoのバージョンを確認してみます。

> python -m django --version
1.11.7

プロジェクトを作成します。 今回のプロジェクトの名前はmysiteにします。

> django-admin startproject mysite

そうすると、django-adminを実行した際のフォルダの下に、下記のようなフォルダとファイルが作られます。

dango-adminを実行したフォルダ
└─mysite
    │  manage.py
    │
    └─mysite
            settings.py
            urls.py
            wsgi.py
            __init__.py

開発用ウェブサーバー

manage.pyが置いてあるフォルダに移動して、開発用サーバーを起動します。

> cd mysite
> python manage.py runserver

そうすると、コマンドプロンプトにこのように表示されます。

Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

PCの中でウェブサーバーが起動していますので、ウェブブラウザで表示されたアドレスにアクセスしてみます。

そうすると、このように表示されます。

image0

コマンドプロンプトに戻って、CTRL+C で開発用サーバーを停止します。

アプリケーションの作成

次に、Pollsというアプリケーションを作ります。

mysiteプロジェクトの中の1つのアプリケーションがPollsであると考えるわけですね。

manage.pyが置いてあるフォルダで、このコマンドを実行します。

> python manage.py startapp polls

そうするとアプリケーション用のファイルが自動的に作られます。 フォルダとファイルの構成は、下記のようになります。

dango-adminを実行したフォルダ
└─mysite  (python manage.py startappを実行したフォルダ)
    │  db.sqlite3
    │  manage.py
    │
    ├─mysite
    │  │  settings.py
    │  │  urls.py
    │  │  wsgi.py
    │  │  __init__.py
    │  │
    │  └─__pycache__
    │          settings.cpython-36.pyc
    │          urls.cpython-36.pyc
    │          wsgi.cpython-36.pyc
    │          __init__.cpython-36.pyc
    │
    └─polls
        │  admin.py
        │  apps.py
        │  models.py
        │  tests.py
        │  views.py
        │  __init__.py
        │
        └─migrations
                __init__.py

Hello World的なビューを書いてみます。 pollsフォルダの中にあるviews.pyをテキストエディタで下記のように書き換えます。

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

インポートの部分も書き換えてください。 pollsフォルダの中にurls.pyというファイルを作って、下記のように書きます。

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.index, name='index'),
]

プロジェクトの方のurls.pyにアプリケーションのURLを加えます。 mysiteフォルダの方のurls.pyを下記のように編集します。

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

urlpatterns = [
    url(r'^polls/', include('polls.urls')),
    url(r'^admin/', admin.site.urls),
]

インポートのところにincludeを追加するのを忘れずに。

そして、開発用サーバーを起動して、ブラウザでアクセスしてみます。

> python manage.py runserver

image1

ちなみに、この状態でルートにアクセスしてみると、404になりました。

image2

ここまでは割とすんなり進むのですが、実際のサーバーで動かすのが私にはちょっと大変でした。

公開日

広告