はじめに
本記事は、Djangoによるwebアプリを開発したときのメモです。
Djangoにした経緯
まず、「CtoCのwebアプリ」を開発したいと思い、言語・フレームワークの以下の観点で選定を行った。
- 人気がある
- 将来性がある
- 簡単
最終的にRubyとPythonに絞られたが、Pythonは機械学習にも強く、「Ruby on Rails」よりも「Django」の方がわかりやすそうということで、Djangoで開発することに決定した。
Djangoについて
Djangoは、ドキュメントがしっかりしていて、以下のリンクのチュートリアルをやることで一通りのことを学ぶことができる。
Djangoドキュメント
環境
$ python --version
Python 3.7.0
今回の流れ
webサービスを作成している中で、つまずいたとこを何回かに分けて記載する。
今回は、djangoのインストールから簡単な画面表示まで。
- Djangoのインストール
- プロジェクトの作成
- データベースの作成
- 開発サーバの起動
- アプリケーションの作成
- view,urlの作成
- 画面表示
1. Djangoのインストール
以下のコマンドでdjangoをインストールする。
$ pip install django
2019/12にdjangoは3.0をリリース。今回は、バージョン指定せずに最新版を使用。
$ pip show django
Name: Django
Version: 3.0.7
2. プロジェクトの作成
startproject [プロジェクト名] でプロジェクトを作成する。今回は、mysiteをプロジェクト名とした。
$ django-admin startproject mysite
プロジェクトを作成すると以下ファイルが作成される。
mysite/mysite/asgi.py
/__init__.py
/settings.py
/urls.py
/wsgi.py
/manage.py
3. データベースの作成
データベースは、プロジェクトを作成したときに作成される「settings.py」で設定する。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
デフォルトでsqlite3が指定されているが、mysql/oracle/postgresqlにも対応している。
ここの設定を変えるだけで、使用するDBを変えることができる。
今回はデフォルトの「sqlite3」とする。
テーブルの作成は、プロジェクトディレクトリ(mysite)に移動して、migrateコマンドを実行する
$ python manage.py migrate
後ほど記載するが、djangoは、modelを作成し、以下のコマンドを実行するだけでDBにテーブルが作成される。
- python manage.py makemigrations
- python manage.py migrate
4. 開発サーバの起動
ここで、djangoの起動確認ができる。
djangoには、開発用サーバを起動するコマンドがあり、そのコマンドを実行することでwebサーバを用意せずに試験することができる。
$ python manage.py runserver
ブラウザで「http://127.0.0.1:8000/ 」にアクセスし、以下の画面が表示されれば成功。
5. アプリケーションの作成
プロジェクトにアプリケーション(機能)を作成する。今回は、pollsという名前で作成。
$ python manage.py startapp polls
アプリケーションを作成すると以下ファイルが作成される。
mysite/polls/__init__.py
admin.py
apps.py
migrations/__init__.py
models.py
tests.py
views.py
6. view,urlの作成
まずは、簡単な画面表示をするため、viewとurlを編集する。
djangoのチュートリアルと同じです。
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
]
これで、polls/を表示すると、polls/view.pyのindexが呼ばれ、その内容が画面に表示されるようになる。
7. 画面表示
再度、開発用サーバを起動。
$ python manage.py runserver
ブラウザで「http://localhost:8000/polls/ 」にアクセスして、以下が表示すれば成功。
おわり
次回はmodelの作成とbootstrapの導入です。