忍者ブログ
雇われるだけの人生から目指せ独立、社会人2年目なゲーム脳SEのブログ。更新頻度=週2~3回。
[194]  [193]  [192]  [191]  [190]  [189]  [188]  [187]  [186]  [185]  [184
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2週間ぐらい前から、Google App Engineで動かすためのアプリケーションを作成しています。
進捗状況はといえば、要件定義がだいたい終わって、ようやくそれらしい画面のレイアウトを作るのに成功したという程度で、あまり芳しくありません。
HTMLやCSSに詳しくなかったり、DjangoどころかPython自体初心者なので調べ物をしながら進めているのが主な遅延原因でしょうか・・・

ともかく!Djangoのテンプレートエンジンを使用して出来た画面がこちらです。

TO000042.JPG

この程度の画面を作るのに休みを丸一日つぶしてしまったなんて・・・
やはり実際に手を動かして作ってみると、自分のスキルのなさが如実にわかっていいですね。もっと勉強してやろうという気になります。

閑話休題。画面の説明をします。
いわゆるよくあるヘッダ+右サイドバー付きのコンテンツ+フッタで構成される画面ですが、個人的にテーブルでレイアウトを作るのが大嫌いなので、なんとしてでもCSSだけで綺麗にレイアウトを作ってやろうと考えました。
しかしCSSでどうやって2段構成を作っているのかなんてまるでわかりません。
Google先生に聞いてみたところ、一番良い解答を返してくださったのがこちら。

Learn CSS Positioning in Ten Steps: position static relative absolute float 

実際に10ステップのチュートリアルを踏まえて、CSSをどのように設定すればどのようなレイアウトが作れるのかが説明されています。ひとまずはここのやり方をパク・・・拝借しました。

↓こちらが先ほどの画面のテンプレート用のソース。

TO000043.JPG

↓そしてこちらがCSSのソース。
TO000045.JPG

↓最後に、pythonスクリプト(リクエストハンドラ)のソース。

TO000044.JPG

見ての通り、リクエストハンドラの中で複数のテンプレートを読み込んで、
それをテンプレートパラメータとしてメインのテンプレートに埋め込むという手法をとってます。

この方法で問題ないのかと思っていたのですが、
実はDjangoにはテンプレートの継承という機能があることがわかりました。
テンプレートの継承とプロトタイプ | スパムとか 
Django | The Django template language: For template authors | Django Documentation 

1:すべての親になるテンプレートを作成し、{% block %}タグを埋め込む。
2:{% extends %}タグを利用して、親テンプレートのblockタグを実装した子テンプレートを作る
3:子テンプレートをrenderする
この手順を踏むことで、今回のようにわざわざ5種類ものテンプレートをインクルードしたりしなくてもすむみたいです!明日、早速試してみます。


PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
カレンダー
03 2024/04 05
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
ブログ内検索
最新コメント
[11/13 DSLR-A850]
[08/29 逆援助交際]
[08/23 クンニ]
[08/22 熟女]
[08/19 痴漢]
はてなブックマーク
プロフィール
HN:
akisute
性別:
男性
職業:
システムエンジニア
趣味:
ゲーム・東方・ニコ動。あと散歩。
バーコード
推奨環境

横幅900px以上、Firefox 3, Safari 3, Opera 9.5, Chrome 0.2以上。IE7ギリギリ対応。IE6未対応。

忍者ブログ [PR]