DjangoGirlsに挑戦~ログインページを作ろう~
ログインページを作ろう
admin(管理ページ)
管理ページに行く前に設定することが二つ
まず一つ目、Visual Studio上でDjangoを作成しているせいなのかわからないが
urls.pyがコメントアウトされているのでadminページへのURLが設定されていません。
なので設定してあげる
プロジェクトのフォルダ/urls.py
from django.conf.urls import include, url //1 from django.contrib import admin //2 urlpatterns = [ //3 url(r'^admin/', include(admin.site.urls)), //4 ]
1.
URL定義用のクラス
この辺りのクラスはいまいち理解できていない
興味がわいたらソースコードを見てみる
2.
今回作るadmin(管理)サイトのインタフェース
admin配下に管理サイト用のテンプレートやらビューやらが全部あるので
これ見るだけでもかなり勉強になりそう
3.
urlpatterns
関数でもなんでもないけどどこで読み込まれるのか
settings.pyのROOT_URLCONFに設定されてます。
4.
url()の引数の中にごにょごにょ書いていく
引数として(regex, view, kwargs=None, name=None)を受け取る
regexは、正規表現でURLの指定を行う
r'^admin/' これはしばらくは書き方だけ覚えちゃうのが良さそう
細かい設定とかする時になったら改めて覚えるってことで
とりあえずは r''でURLをくくる
^が始まりで/が終わり
つまりr'^admin/'は (URL省略)/adminにURL設定しますよー
viewは、そのままビュー!って思ったら間違い
DjangoはMTVモデルでModel-Template-Viewになっている
通常のMVCでいうとMは同じでDjangoのViewがContoroller、TemplateがMVCのViewにあたる
なのでurlの引数として渡すviewも実際はコントローラの関数に該当する
今回はinclude()でadmin内のurls.pyを見てそこから先はそっちで処理をするようになっている
一つ目がだいぶ長くなってしまったけど
二つ目の設定
今度は表示したいmodelのあるアプリケーションフォルダのadmin.pyを設定
DjangoGirlsだとblog/admin.pyになる そもそも一つ追加してないしね
from django.contrib import admin from .models import Post //1 admin.site.register(Post) //2
1.
.を使うことで相対パス読み込みになる
.modelsは同ディレクトリ内のmodels.pyを読み込む宣言
2.
adminへの登録
第二引数にadminオブジェクトを作成してadminのオプション変更ができるみたい
使う機会あるかな
設定はこれで終わり
サーバを起動して、ローカルアドレスの後ろに/adminを入れてアクセスすると
ログインするのにsuperuserを作成する。
Visual Studioなら(以下略)
Djangoの管理画面が優秀すぎてこれだけでおなか一杯になれるし、
ブログで公開する必要なければローカルで管理サイトだけ置いとけばいいんじゃないかなってぐらい
とりあえず作り終わったら今後のためにいくつかポストしておく