the dawn of yuriko hisory

アニメやら漫画関係で何か作りたいものと勉強したことのメモ用

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を入れてアクセスすると
https://i.gyazo.com/89d565ba0dec84a2e33ceaab711ff4bf.png

ログインするのにsuperuserを作成する。
Visual Studioなら(以下略)

Djangoの管理画面が優秀すぎてこれだけでおなか一杯になれるし、
ブログで公開する必要なければローカルで管理サイトだけ置いとけばいいんじゃないかなってぐらい
とりあえず作り終わったら今後のためにいくつかポストしておく

https://i.gyazo.com/309f7e3680dd3e937c690c7f2eeacdd5.png

gyazo.com