しゃちの備忘録

プログラミングを中心とした技術関連の備忘録です(今のところ)

Djangoに触る(その1)

PythonフレームワークDjangoの使い方を勉強します. 過去にちょろっと触った程度なので,再勉強するつもりでやります

ほぼ日記です.

解説要素はあまりありません…. チュートリアルをなぞって,自分が疑問に思ったところを追記する感じでやっていきます.

Djangoとは

PythonでうごくWebフレームワークの1つです. webアプリ開発で使える機能がまとまっているので, これを利用することで,Webアプリを作成する際の効率を上げることができます.(現代においては当たり前に使われているかもしれません)

Pythonで動くWebフレームワークは他にもあり, BottleFlaskPyramid, Ploneなどが存在しています.

今回はPython界で最も使われているフレームワークであるDjangoに挑んでみようというわけです.

また今回の学習ではDjangoの公式ドキュメントを参考に進めていきたいと思います.

Django ドキュメント | Django documentation | Django

今日やったところ

はじめての Django アプリ作成、その 1 | Django documentation | Django

Djangoのインストール

pipを使うことでインストールは完了します.

$ pip3 install django

重ねてバージョン確認もしてみます.現在(2017/08/30)での最新バージョンは1.1です

$ python3
$ import django
$ print(django.get_version())

f:id:teru0rc4:20170830222101p:plain

プロジェクトを作成する

Djangoのコードはプロジェクトという単位で管理されます, プロジェクトには実際のコードや設定などが詰まっており,djangoにはそれをまるっと生成するコマンドがあります.

プロジェクトを生成したい場所で,次のコマンドを入力します.**********の部分には生成したいプロジェクト名を入れます.

$ django-admin startproject **********

今回の例ではdjango-admin startproject mysiteとしました. 生成するとこんな感じのディレクトリとコードが生成されます.

f:id:teru0rc4:20170831003140p:plain

ファイルのそれぞれの役割は割愛します(私自身まだわかりきってないのと,公式ドキュメント(https://docs.djangoproject.com/ja/1.11/intro/tutorial01/)に丁寧に買いてあるので…)

サーバーを動かしてみる

作成したプロジェクトが動くかのテストをします. 作成したディレクトリに入って,次のコマンドを実行します.

$ python manage.py runserver

するとコマンドラインに次のような表示がなされます.

f:id:teru0rc4:20170831003457p:plain

この状態で,http://127.0.0.1:8000/にアクセスして見ます. このような画面が出れば,OKです.

f:id:teru0rc4:20170831003612p:plain

シンプルなビューを作る

サーバがかけたので,今度はビューを作ります. いわゆるwebページの見た目を制御する部分です.

そのために色々ファイルを準備するのですが, djangoにはそれらのファイルやディレクトリを自動生成する機能が含まれています.すごい,

なのでその機能を使って,pollsという名前のアプリケーションを作り,そこにビューとしての機能をもたせたいと思います.

今回はmysiteの中のmanage.pyと同じディレクトリで作業をします(こうすることでmysiteのサブモジュールではなく,トップレベルのモジュールとしてインポートできます).

$ python manage.py startapp polls

すると新たにこんな感じにファイルが追加されます. f:id:teru0rc4:20170831005323p:plain

ここにpolls/urls.pyを追加し, polls/vies.pypolls/urls.pymysite/urls.pyに対して,チュートリアルのサイト(https://docs.djangoproject.com/ja/1.11/intro/tutorial01/)で言われるような追記を行います. ここで行われているのは,URLの対応付けと,実際のビューに関する記述です.

ここまで記述が完了したら,改めてサーバーを動かします.

$ python manage.py runserver

今回アクセスするのは,http://127.0.0.1:8000/polls/です. 次の画面が出れば,正しく機能しています. もしエラーのようなものを吐いていれば,当該ファイルを修正します.

f:id:teru0rc4:20170831005820p:plain

おわりに

ひとまず今日はここまでです. Djangoおもしろいです,知らないことも多いですが勉強して期待です. チュートリアルを動かしてるだけなので新規性も何もありませんが,やっていく中での疑問とかを調べて一緒にまとめていければいいなと思ってます.

明日はこの続きができればいいなーと考えていますが時間が取れるかわからないのと, 私自身の資料執筆が遅いので,今日と同じくらい短めになると思います.

それでも,短くても小出しで更新したいと思ってます…….

頑張ります.