開発環境はパソコンにインストールせず
インストール済みのPython、Djangoが
WEBで無料で使えるPaizaCloudを使用します。
Django公式のチュートリアルを実際に使い
分かりにくいところを補足していきます。
はじめての Django アプリ作成をやっていきます。
今回は、その1です。
ここではユーザーがアプリにアクセスしてきたら
処理して単純なメッセージを出力するまでの一連の
流れが学習できるようになっています。
データベースを使ってないので
よりシンプルで分かりやすいです。
データベースに関しては、その2から出てきます。後で記事にします。
PaizaCloudの使い方は
会員登録したらサーバー名に適当に名前つけて
Web開発でDjangoを選択→新規サーバー作成すれば使えます。
こちらの記事を参考にしてください。
はじめての Django アプリ作成、その 1
チュートリアル全体ではここの前に章がありますが
概要は1番難しいので飛ばします。
クイックインストールガイドも
インストール済みの環境(PaizaCloud)を使うので飛ばします。
はじめての Django アプリ作成、その 1
を順番にPaizaCloudで実行していきます。
各サンプルコードの右上に
Linux/アップルとWindowsが切り替えられるようになってます。
PaizaCloudは🐧マーク(Linux)のほうです。
チュートリアルにそって説明します。
プロジェクトを作成する
PaizaCloudの左にあるターミナルアイコンをクリックするとターミナルが立ち上がります。
django-admin startproject mysite でEnter(以下Enterは省略)
cd mysite ディレクトリが移動されます。
(以降エラーになるとき、ディレクトリがルートに戻っていることがあるので、
cd mysiteで必ず移動してから実行してください。)
py manage.py runserverはやってもいいが、まだやらないほうがいい。
多分同じ結果にならない。
Polls アプリケーションをつくる
python manage.py startapp polls
PaizaCloudで実行するときは
settings.py
ALLOWED_HOSTS = []
→ALLOWED_HOSTS = ['*']にして保存
(ファイルを変更したときは各Window左上の保存を押してください。
赤いマークが出て押せないときは保存完了している状態です)
実行できるホストをすべて許可します。
これをやらないとエラーになる。
はじめてのビュー作成
polls/views.pyは指示通り。polls/urls.py
ファイルはないので
pollsで右クリック新規ファイル作成で作ってください。
mysite/urls.py同じようなプログラムがすでに書かれていますが
全部消してから貼り付けてください。
「デフォルトでは runserver コマンドは内部 IP のポート 8000 で起動します。」とありますがこれは。
ローカル環境ではhttp://127.0.0.1:8000/が大元のアドレスになります。
PaizaCloudはhttps://localhost-個人別の名前.paiza-user-free.cloud:8000/が大元となります。
mysite/urls.pyの
path(''がURLの大元の位置を表している。
path('polls/'にすることで
ローカル環境ではhttp://127.0.0.1:8000/polls/
PaizaCloudではhttps://localhost-個人別の名前.paiza-user-free.cloud:8000/polls/を表しています。
urls.pyは全部で2つありますので注意してください。
python manage.py runserverを実行して
左の8000と書いてある地球のアイコンをクリックするとアクセスできます。
最初Page not found (404)が出ます。
アドレスバーの最後にpolls/を付ければ
Hello, world. You're at the polls index.と表示すれば成功です。
説明で出てくるURLconfって何?こちらが分かりやすいです。
【Django入門】urls.py(URLConf)の役割と使い方ここがポイント
今回の一連の流れを図にしました。

ややこしいのがパッケージのurls.pyのpolls①、②は名前は同じです。
urlpatterns = [
path('①polls/', include('②polls.urls')),
しかしまったく無関係です。
①のpollsだけをtestとか適当な名前に変えると、
そのtestにアクセスしたらちゃんと動くので実験してみてください。
2つのurls.pyで出てくるpath()
関数の説明です。
path('', views.index, name='index'),
関数解説
path(route,view,name)
path() 引数: route
route は URL パターンを含む文字列です。リクエストを処理するとき、Django は urlpatterns のはじめのパターンから開始し、リストを順に下に見ていきます。要求された URL を一致するものを見つけるまで各パターンと比較します。
path() 引数: view¶
Django がマッチする正規表現を見つけると、 Django は指定されたビュー関数を呼び出します。その際は HttpRequest オブジェクトを第一引数に、そしてキーワード引数としてrouteから「キャプチャされた」値を呼び出します。その3で出てくる。
サーバーにユーザーから送られてきたリクエスト(HttpRequest オブジェクト)がviewsのdef index(request):に渡され変数requestに入ってる。
return HttpResponse()でユーザーに返答してる。
今回ユーザーから送られてきたrequestの中身は何も見ないで
返答のみ行ってる。
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
path() 引数: name
URL に名前付けをしておけば Django のどこからでも明確に参照でき、
とくにテンプレートの中で有効です。
path('', views.index, name='index'),この場合''と空欄だが、ここへ来る前mysite/urls.pyで'polls/'とされているので'polls/'をindexと名付けてる。
こちらのサイトも分かりやすいです。
【django】Webサイト・アプリを作成するまでの一連の流れ
続きはこちらになります。



コメント