ユーザ用ツール

サイト用ツール


メモ:django

文書の過去の版を表示しています。


Django

環境構築

venvを使って仮想環境構築しDjangoを利用する。

$ mkdir django
$ python -m venv django/
$ source django/bin/activate

仮想環境内でpipでdjangoをインストール

$ pip install django

以下、公式のチュートリアルに沿ってアプリを作成しながら必要事項をメモしていく。

プロジェクト作成

プロジェクトの作成

$ django-admin startproject app01
  • プロジェクトを格納するapp01ディレクトリが作られる
  • app01内には「app01」と「manage.py」がある
    • 内部のapp01はプロジェクトのメインディレクトリ。設定ファイルやURLディスパッチャの設定ファイルが格納されている。
    • manage.pyはプロジェクト管理用のユーティリティ

テスト用の内部サーバ起動

Djangoは開発用のWebサーバを持っている。

app01/settings.pyにアクセス許可の設定

ALLOWED_HOSTS = ["*"]

サーバの起動

$ python manage.py runserver 0:8000

ポート番号8000で待ち受け。0:ですべてのホストから接続を受け付ける。

コマンドでの待ち受けIPを指定するとローカルホストからのみ接続できる。ここでは別ホスト上に開発環境があるので、接続されているインターフェースにバインドする。0を指定すればすべてのインターフェイスにバインド。

起動コマンドでIPアドレスにアサインすることと、設定ファイルの接続許可が両方正しく設定されて、初めて外部から接続できる。うまく起動できれば、http://[IP Address]:8000/でテストサーバに接続され、ロケット打ち上げが表示される。

アプリケーションの作成

プロジェクト内に具体的に機能するアプリケーションを作成。

reportという名前のアプリケーションを作成する

$ python manage.py startapp report
  • app01(プロジェクトの親ディレクトリ)内にreportディレクトリが作成され、アプリケーションに関するファイル一式が格納される。

Viewの作成

Viewはアプリケーションのロジック、処理を行う中心的な部分。データの加工やテンプレートの呼び出しなど、様々な処理を担当する。

app01/report/views.py

viewの本体。とりあえず単純に文字を表示するだけ。

from django.shortcuts import render
from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, Django.") 

app01/report/urls.py

URLのディスパッチ設定。アプリケーションレベルのURLはここでディスパッチする。このファイルは、プロジェクトレベルのURLディスパッチにインクルードして使う。アプリケーション作成時には自動作成されない。

urlpatternsにURLとViewの対応を設定する。ここでは「」でルートディレクトリへのアクセスをviews.pyのindex関数と対応づける。 from django.urls import path from . import views urlpatterns = [ path(, views.index, name='index'),

]

app01/app01/urls.py

プロジェクトレベルのURLディスパッチ

include関数を読み込んで、アプリケーションレベルのURLディスパッチ設定ファイルを読み込むように設定する。

ここでは/report/以下のURLはreport/urls.pyを読み込んで処理する。

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('report/', include('report.urls')),
    path('admin/', admin.site.urls),
]

以上を設定すると、http://[IP Address]:8000/report/で「Hello, Django.」が表示される。

メモ/django.1559108097.txt.bz2 · 最終更新: 2019/05/29 14:34 by Wiki Editor

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki