LoginSignup
2
1

More than 3 years have passed since last update.

ゼロから始めるDjango(part:1)

Last updated at Posted at 2020-09-23

理由

仕事をしていてDjangoのライブラリに関連するものが多く、一度触ってみたいと思ったため

目的

  • アプリケーションの作成の流れを理解する
  • 使うことができるライブラリを理解する

参考文献

はじめての Django アプリ作成、その 1 | Django ドキュメント | Django

実践

djangoのプロジェクトのスタート

django-admin startproject mysite

上記コードを実行するとdjango用のプロジェクトをmysiteという名前で作成してくれる。

プロジェクトの中身

そのプロジェクト構造は以下のようになっている。

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py

*外側のmysiteは重要ではないため好きな名前でよい

  • manage.py プロジェクトの様々な操作を行うやつ
  • 内側のmysiteはPythonパッケージ
  • mysite/settings.py: Django プロジェクトの設定ファイル
  • mysite/urls.py: Django プロジェクトの URL 宣言(コントローラーみたいなやつ?)
  • mysite/asgi.py: プロジェクトを提供する ASGI 互換 Web サーバーのエントリポイント
    エントリポイント:プログラムを実行するうえで、プログラムやサブルーチンの実行を開始する場所のこと(main.pyみたいなやつ)

  • mysite/wsgi.py: Webサーバー

開発用サーバー

manage.pyのあるディレクトリ、つまりは外側のmysiteで上記コードを実行すると立ち上がる。

python manage.py runserver

サーバーのポートを変えたい場合は下記のようにする。

python manage.py runserver 8080

pollsアプリケーション

作成準備

manage.pyと同じ階層で下記のコマンドを実行

python manage.py startapp polls

pollsというディレクトリが自動生成される。中身は下記のようになっている。

polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py

pollsの部分は任意。startappが大事。

urls.pyを追加し、urls.pyとviews.pyを作成する。

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.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

ルートURLconf

mysite/urls.py
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]
  • urlpatternsのリスト内にurlconfを追加。
  • djangoではinclude()に遭遇するとそのポイントまでに一致したurlのところまでを切り取る。
  • 次の処理のために残りの文字列をインクルードされたURLconfへ渡す。 http://polls/hogehoge/ の場合は http://polls/(ここまで切り落とす), hogehoge/(ここまでをpolls.urlsへ渡す)

実行結果の確認

下記のコマンドで実行結果を確認する

$ python manage.py runserver

http://localhost:8000/polls/ にアクセスして、
「Hello, world.You`re at the polls index.」と表示されていれば成功

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1