Sunday, June 10, 2012

Django -- create a new app - part3

part 1和2已經記錄了如何開一個新的app和urls.py的設定
這一篇就把剩下的部分講完
這邊主要寫view.py和html的部分

首先先連到apps/polls/
cd //var/www/mutarock/apps/polls
vim views.py
首先先來新增一個index,這個可以印出資料庫最近新增的幾個投票
from django.template import Context, loader
from apps.polls.models import Poll
from django.http import HttpResponse

def index(request):
    latest_poll_list = Poll.objects.all().order_by('-pub_date')[:5]
    t = loader.get_template('polls/index.html')
    c = Context({
        'latest_poll_list': latest_poll_list,
    })
    return HttpResponse(t.render(c))
上面的code會抓出最近的5個投票,並且讀取polls/index.html這個templates
並且把投票資訊傳給他顯示

存檔之後執行熟悉的
python manage.py runserver
開啟瀏覽器 http://127.0.0.1:8000/polls 應該會跑出錯誤訊息
TemplateDoesNotExist at /polls/
polls/index.html
這是因為我們還沒有把templates建立起來,我們前面只是設定

移到前兩層,去建立我們的templates資料夾
cd //var/www/mutarock
mkdir templates
cd templates
mkdir polls
目前這個系統的資料夾應該會像
mutarock/
    manage.py
    mutarock/
    apps/    
        polls/
    templates/
        polls/
移到 templates/polls 資料夾去建立我們的index.html
{% if latest_poll_list %}
{% if latest_poll_list %}
    <ul>
    {% for poll in latest_poll_list %}
        <li><a href="/polls/{{ poll.id }}/">{{ poll.question }}</a></li>
    {% endfor %}
    </ul>
{% else %}
    <p>No polls are available.</p>
{% endif %}
這樣就可以順利顯示我們的polls資訊了
其他的細節我就不細講了,教學都還滿仔細的,我覺得自己講不太清楚,所以detail, vote, result直接看教學比較好
教學三教學四


No comments: