Djangoを試してみた
Pythonのフレームワーク Djangoを試してみました。チュートリアルをそのまま、途中までです。
試した環境は、Windows10上のAnacondaです。Djangoはpipなどでインストールされているものとします。
目次
プロジェクトの作成
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の中でウェブサーバーが起動していますので、ウェブブラウザで表示されたアドレスにアクセスしてみます。
そうすると、このように表示されます。
コマンドプロンプトに戻って、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
ちなみに、この状態でルートにアクセスしてみると、404になりました。
ここまでは割とすんなり進むのですが、実際のサーバーで動かすのが私にはちょっと大変でした。
公開日
広告