Django アプリ開発
By on Oct 15, 2019
Pythonのフレームワーク「Django」で簡単なアプリを作成してみる
- 公式:https://docs.djangoproject.com/ja/2.2/intro/tutorial01/
- Qiita:[Python] Djangoチュートリアル - 汎用業務Webアプリを最速で作る
プロジェクトの作成&初回起動確認
$ docker-compose run web django-admin startproject project
Starting django_db_1 ... done
$ tree mysite
.(project)
├── Dockerfile
├── docker-compose.yml
├── manage.py
├── mysite(app)
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── requirements.txt
$ docker-compose up
アプリの作成
$ docker-compose run web python manage.py startapp polls
.
├── Dockerfile
├── db.sqlite3
├── docker-compose.yml
├── manage.py
├── mysite
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-37.pyc
│ │ ├── settings.cpython-37.pyc
│ │ ├── urls.cpython-37.pyc
│ │ └── wsgi.cpython-37.pyc
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── polls(new app)
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
└── requirements.txt
$ docker-compose run web pip install django django-crispy-forms django-filter
$ docker-compose run web python manage.py startapp app
Viewの追加
polls.view.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'), ]
ルーティングを追加
- プロジェクトにルーティングを追加する
mysite/urls.py
"""mysite URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/2.2/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: path('', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin from django.urls import include, path urlpatterns = [ path('polls/', include('polls.urls')), path('admin/', admin.site.urls), ]
localhost:8000/pollsで確認できる