Djangoとかいうフレームワークと、ウェブサーバ(ApacheやNginx)、データベースの関係について
このサイトの上の方の画像。下にあるやつはたくさんプロジェクトを使うとき(らしい)
Overview of Single vs. Multi Server Architecture - Irrational Exuberance
→wsgiってなんだよ
Webサーバとフレームワークをくっつけてくれるインタフェース。知らん。
→memcachedとかいうやつ
『DBにばっかリクエストしたらDBに負荷かかって大変だろ? だからDBから教えてもらった情報お前に教えてやるから俺にも聞いていいよシステム』
参考
第1回 memcachedの基本:memcachedを知り尽くす|gihyo.jp … 技術評論社
Djangoの中身
真ん中のFunctional Architectureなるところ
Architecture — MyTardis 3.5 documentation
URLDispatcher(urls.py) :
ユーザがURLを入力、アクセスすると、
urls.pyに書いた通りにDjangoが『あ、このURL(/show)がきたということは、View(def show())の値をユーザに渡せばいいわけだな』と判断して
値を返してくれる。『何の値だよ』については次のViewに関する行を参照。
偉い。Apacheのmod_rewriteみたいなやつ。
View(views.py) :
views.pyにdef index()なるメソッドを作り、
その返り値にreturn HttpResponse("
ユーザがアクセスしたときにそれを表示してくれる。すごい。
もちろん設定次第ではviews.pyに絶対書かなければいけないわけではない。
Model(models.py) :
データベースにアクセスするときに使うやつ。
modelを作ってデータベースと結びつける。
JavaでいうDTOを便利にしたやつ。
データベースから取ってきてオブジェクト化するなら最初からオブジェクトでいいよね的発想で、オブジェクトごとデータベースになんか作るらしい(O/RMapperとか言うらしい)
便利だけど普通にリレーショナルデータベース使った方が速いので一長一短だとか。
ここのスライドの2枚目もいい感じ
Introduction to Django
complete flow of a Django request and response | Flickr - Photo Sharing!
こっちは中国の人が描いたやつらしいです。
便利なやつ!
- template
『動的なHTMLとかをviews.pyに書くの大変じゃん? だからここに書いたらいいよシステム』
views.pyにrender(request, "アプリケーション名/ほげほげ.html")って書くと、所定の場所に置いたほげほげ.htmlファイルを解析して、動的なHTMLファイルっぽい形の値を生成してくれる。
それをユーザに渡して『ふつうのHTMLファイルか』と見せかけるやつ
テンプレート言語なる書き方をする。( {{とか{%とかを用いるやつ。 )
PHP化したPythonみたいなもの(PHP知らない)
こんなノリ
これらは全てより便利にするためのものであって別に知らなくてもいいけど知らないまま作ると大変だよ的なもの
しらない。そのうち追記する。おしえて。