【17/8/22】副業9日目
Aug 22, 2017 · 4 min read
前回はEclipse+Django(Virtualenv)を使った開発環境の構築しました。
今日は開発環境の状態や構成の確認をします。
開発環境を見てみると、topやwebsiteといった状態で機能ごとに分割されているように見える。多少の違いはあるが、その機能ごとにadmin.pyやmodels.py、urls.py、views.pyが存在している。
頭の中が?????である。。。。
少し調べてみるとこんな紹介があった。
プロジェクトはウェブアプリケーションである
appsはプロジェクトの一部の機能を持った小さなライブラリである
プロジェクトは沢山のappsで成り立つ
僕はこのように解釈した: ウェブアプリケーションの役割は細かく分けたほうがよく、一つのappに一つの役割を割り当てるべきだ
Djangoの本番環境と開発環境の切替
プロジェクトフォルダ配下にあるsettings.pyでDBへの接続情報を記載するが、本番と開発環境を切り替えたい場合、settings.pyでは本番用の記載をしておき、別でlocal_settings.pyを作成して開発環境用とすることができる模様。構築した開発環境ではsettings.pyにはMySQLに対する接続が、local_settings.pyではSQLiteに対する接続情報が記載されていた。
以下のサイトが参考になった。
view.pyでDBの取得およびTemplateへ値を渡す方法
view.pydef top(request):
site_tag = SiteTag.objects.all()
→Modelで定義しているSiteTagクラスを使ってDBから全カラム情報を取得する
return render(request, ‘top.html’, dict(tags=site_tag))
→top.htmlに対して「tags」という変数で値を渡している。
→renderメソッドはdict形式で渡す必要がる。
Template(top.html)の記載方法
<h3>タグリスト</h3>
<table border=”1">
<thead>
<tr>
<th>社員名</th>
</tr>
</thead>
<tbody>
{% for tag in tags %} →viewで指定したtagsをfor文でまわす。
<tr>
<td>{{ tag.name }}</td> →tag+<.key>で値を取り出す。
</tr>
{% endfor %}
</tbody>
</table>Modelを使用することでSQL文を使うことなくDBとのやり取りが可能となるため、pythonでロジックのみに集中できる。確かに便利だ。
次回はテスト用のデータをAdminページから入力し、CSSも適用させながらTopページで一覧を表示する。
続く。
自分に対する備忘録:実際の開発環境に関するメモについては別紙でまとめる。(Dropbox内)

