2018年12月9日viewの作成とurlの接続・url関数のおさらい(Django)DjangoPythonDjangoで簡単なviewを作成します。今回は、基本的なviewの作成とurlの接続を行います。準備テストアプリ概要viewの追加urlの設定viewの作成とurlの接続Djangoにおけるviewとは、HttpRequestを受け取ってHttpResponseを返す機能を果たします。Django開発の基本は、viewを作成したらurls.pyにurlの設定を記述してお互いを接続することです。以前にもurlの設定方法を記述しましたので、こちらも参考にして下さい。→Djangoのルーティングurlの設定方法など、django1.8で大きく概念が変わりました。本家日本語のチュートリアル(django1.4)を見ながら進めている人は注意してください。Djangoのプロジェクトを作成済み。投票アプリ用モデル(Choice、Question)作成済み。当サイトでは、Vagrantでゲスト環境(仮想環境)を作ってDjangoを動かいていますが、それ以外の環境でも操作方法はだいたい同じです。1Djangoプロジェクトを生成します。プロジェクト生成)2Djangoアプリケーションを作ります。プロジェクトの初期設定)3投票アプリのモデルを定義します。7.1.1503pyenv1.1.3-5-g7dae197Anaconda3-4.3.0MariaDB5.5.52-1.el7Apache2.4.6mod_wsgi4.6.3Django2.0.3テストアプリ概要1以下のようなDjangoアプリ構成を作ります。プロジェクト名が「pj1」で、アプリケーション名が「users」です。プロジェクトの設定は済ませたものとします。赤字のファイルは、今回変更する部分です。pj1/pj1/__init__.pysettings.pyurls.pywsgi.pyusers/__init__.pyadmin.pyapps.pyurls.pyviews.pymodels.pytemplates/viewの追加1userディレクトリのviews.pyに以下の記述をします。index.")viewメソッドは第1引数に必ずHttpRequestクラスを受け取ります。戻り値としてHttpResponseクラス(もしくはそれを継承したクラス)を返す必要があります。次にurlとviewを結びつけます。urlの設定djangoへのアクセス時には、最初にROOT_URLCONF(デフォルトではproject/urls.py,今回の例ではpj1/pj1/urls.py)を確認します。ここでどのviewを呼び出すかを確認します。1usersディレクトリのurls.pyに以下の記述をします。urlとviewの結びつけ]polls.views.indexとpollsのurlが接続されました。polls.urlsはroot_urlではないためまだブラウザから確認することはできません。2pj1ディレクトリのurls.pyに以下の記述をします。urlと他のurlpatternsとの結びつけ]urls.pyにはurlpatternsという配列が設定されています。配列の要素はurl関数で追加していきます。url関数ではurlとview、もしくはurlと他のurlpatternsを結びつけます。root_urlを更新した状態です。これで「http://ドメイン/」に一致するurlはusers.urlsを呼び出すようになり、ブラウザで確認できるようになります。3簡易サーバを起動します。0.0.0.0:80004ブラウザから「http://localhost:8000/polls/」にアクセスしてみましょう。name='index'),]url関数は第1引数にurlの正規表現を記述し、第2引数にview関数またはinclude関数の戻り値を渡します。r”は正規表現ではなくraw文字列です。raw文字列は、\をエスケープ文字ではなくそのまま出力するようになります。第3引数の「name=’index’」はurlの逆引き用です。別viewへのリダイレクトやtemplate内でのリンクに使用します。'users'))]includeを使用した場合、matchした文字列を取り除いた部分を次のurlpatternsに渡します。