ホーム >  Python >  Djangoでアプリを作る


Posted:2017/01/27 9:00:39 AM|Category : Python

Djangoでアプリを作る

Django(ジャンゴ)で簡単なアプリケーションを作ります。

今回の目的

前回は、VirtualenvでPythonサンドボックスを作成しました。今回は、そのサンドボックスにDjangoをインストールして実際に単純なPythonのプリケーションを作ります。

アプリケーションは、簡単な投票 (poll) アプリを作成します。Pollアプリは以下の2つの部分からなります。

  • ユーザが投票したり結果を表示したりできる公開用サイト
  • 投票項目の追加、変更、削除を行うための管理 (admin) サイト

前回の作業

Virtualenvでプロジェクトを作成します。そこにDjangoをpipでインストールし、簡易サーバーアプリケーションを起動しました。

Djangoをインストールしてプロジェクトをつくる

準備

①Pythonとpipは以下を参考にして下さい。

UbuntuにPythonとpipをソースビルドでインストールする

pipコマンドの非推奨について。

pip listコマンドを実行すると非推奨(DEPRECATION)が表示される

②隔離されたpython環境を作成します。

virtualenvでpython環境を管理

③Djangoをインストールしてプロジェクトを作ります。簡易サーバーアプリケーションを起動します。

Djangoをインストールしてプロジェクトをつくる

私の環境

OS Ubuntu 16.04.1 LTS 64bit
python(ホストOSで通常使うもの) 2.7.9
python(サンドボックス) 3.5.2
pip 9.0.1
Django 1.10.5

前提条件

・Ubuntuに、Python3系、pip、virtualenv、virtualenvwapperに導入済みとします。

Djangoアプリを作成

virtualenvのサンドボックス内で、Django環境のアプリケーションを制作します。

・すでにDjangoのプロジェクトを作成済みとします。

Djangoをインストールしてプロジェクトをつくる

①virtualenv環境に入ります。

workon webapp

②カレントディレクトリを「/opt/webapps/mysite」へ移動します。

cd /opt/webapps/mysite

③アプリケーションを作成します。以下のコマンドで投票(poll)のアプリケーションを作ります。

python manage.py startapp polls

※プロジェクトとアプリケーションの違いについて

プロジェクトとは、あるウェブサイト向けに「設定」と「アプリケーション」を集めたものです。それに対し、アプリケーションとは、実際に何らかの処理を行うWebアプリケーションを指します。例えば、ブログシステムや単純な投票アプリといった具合です。

treeコマンドで何が作成されたか確認します。

tree -a /opt/webapps/mysite/

以下のような構造になっています。

├── db.sqlite3
├── manage.py
├── mysite
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-35.pyc
│   │   ├── settings.cpython-35.pyc
│   │   ├── urls.cpython-35.pyc
│   │   └── wsgi.cpython-35.pyc
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── polls
    ├── __init__.py
    ├── admin.py
    ├── apps.py
    ├── migrations
    │   └── __init__.py
    ├── models.py
    ├── tests.py
    └── views.py

④今回はrequestを受けて、responseを返す簡単なビューを作成しています。PC上の実際の「/opt/webapps/mysite/polls」ディレクトリにある「views.py」を以下のように編集します。

  • /
  • opt
  • webapps
  • mysite
  • mysite
  • polls
  • views.py
rom django.http import HttpResponse


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

⑤pollsディレクトリにURLconfを作るために、pollsディレクトリに「urls.py」というファイルを作ります。

  • /
  • opt
  • webapps
  • mysite
  • mysite
  • polls
  • views.py
  • urls.py

ビューを呼ぶため、URLの対応付けをする必要があります。URLconfが必要となります。

urls.pyに以下の様なコードを記述します。

django.conf.urls import url

from . import views

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

⑥次はルートのURLconfに「polls.urls」モジュールの記述を反映させます。今度は、「mysite/urls.py」に以下の記述を追加します。

  • /
  • opt
  • webapps
  • mysite
  • mysite
  • urls.py
  • polls
  • views.py
  • 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),
]

・「mysite/urls.py」に django.conf.urls.include のimportを追加して、 urlpatterns のリストに include() を挿入します。

・include() は他の URLconfs への参照を許可します。

⑦「index」ビューをURLconfに接続を接続しました。下記のコマンドを実行して、動作を確認しましょう。

python manage.py runserver

⑧ブラウザで「http://localhost:8000/polls/」にアクセスします。”Hello, world. You’re at the polls index.” と表示されるのが確認できると思います。

※これはビューの“index“で定義したものです。

⑨停止する時は、CTRL+C(コントロールとCボタンを同時に押す)です。


トラックバック用のURL
プロフィール

名前:イワサキ ユウタ 職業:システムエンジニア、ウェブマスター 誕生:1986年生まれ 出身:静岡県 特技:ウッドベース 略歴 2008年04月 金融機関系I

最近の投稿
人気記事
カテゴリー
広告