投稿日:2019年11月5日
Djangoは簡単にWebアプリケーションを作成できるフレームワークです。この記事は初心者の方向けのDjangoチュートリアルです。
DjangoはPythonのWebフレームワークです。ちなみにこのサイトMarsquaiブログもDjangoで作成されていたりします。PythonにはたくさんのWebフレームワークが存在しますが、Djangoはその中で最も世の中に情報の多いフレームワークでしょう。プログラミング初心者の方はフレームワークを選ぶ時、世の中に情報の多いものを選択するものをオススメします。
このTutorialではDjangoを学びながら簡単なBlogアプリケーションを作成していきます。
まずはDjangoをインストールしましょう。今回はバージョン2.2.6を使います。
$ pip install django==2.2.6
ちゃんと正しいバージョンのDjangoがインストールできているか確認しておきましょう。
$ python
Python 3.6.8 (default, Oct 7 2019, 12:59:55)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.get_version()
'2.2.6'
DjangoにおけるprojectはWebサイトを作成する際の作業ディレクトリのルートになります。このディレクトリにはWebサイト作成に必要なファイルが詰め込まれています。プロジェクトはdjango-adminコマンドで作成することができます。このdjango-adminコマンドはDjangoをインストールした段階で使用できるようになっています。
困った時は公式ドキュメントを参照しましょう。
$ django-admin startproject sample_blog
コマンドを打つと必要なファイルが入ったディレクトリが作成されます。
sample_blog/
├── manage.py
└── sample_blog
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
sample_blog内に作成されたファイルはそれぞれ意味があります。簡単に解説しておきます。軽く呼んでわからない場合は読み飛ばしちゃってOKです。
多くのWebサイトでデータベースが必要になるでしょう。データベースというとSQLなどで作成・管理するイメージが強い人もいるはず。
しかし、Djangoの場合はPythonだけ使えていれば簡単にデータベースの作成・管理を勝手にやってくれるORM(ObjectRelationalMapper)ライブラリが使われています。そのため覚えるのはPythonの使い方とmanage.pyのコマンドの打ち方だけでOKです!
migrateコマンドを実行してみましょう。
はじめの状態では最低限管理に必要なデータベース、テーブルのみ作成されます。
$ cd sample_blog
$ python manage.py migrate
他のフレームワークで開発をしたことがある方は、Webアプリケーションの他にサーバーのインストールして、さらにそれを色々設定して...と、動かすまでの敷居が高くて大変な印象を持っているのではないでしょうか?
Djangoの場合、開発用サーバーというものが用意されていてすぐにDjangoのサイトを動かすことができます。この開発用サーバーはプロジェクトのソースの変更が自動で適用されたり、ログを表示してくれたりとても便利なものです。
しかし、一つ注意してほしいことは開発用サーバーは公開するサイトを動かす時には使わないでください。(開発用サーバーは並列の処理ができなかったり、プロセスの死活管理をしてくれません)公開するサイトを動かす時にはnginxとgunicornを使うのが良いでしょう(これについては今後のPartで紹介します)。
では実際に起動してみましょう。
$ python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
November 04, 2019 - 09:26:15
Django version 2.2.7, using settings 'sample_blog.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
これでlocalhostのポート8000番にサイトが起動しました。ブラウザでhttp://localhost:8000を確認してみましょう。
下のようなDjangoのサンプルページが表示されればOKです。
サンプルサイトにアクセスするとGETのHTTPRequestが送られStatusCode=200のHTTPResponseをかえしたことがターミナルにログが表示されるはずです。
[06/May/2018 17:20:30] "GET / HTTP/1.1" 200 16348
開発用サーバーを停止するときにはCtrl+Cをおしてください。
Djangoでサイト作ってみたくなりました☺