django第一個app,3

增長頁面和功能html

  • Question 「index」 page – displays the latest few questions.
  • Question 「detail」 page – displays a question text, with no results but with a form to vote.
  • Question 「results」 page – displays results for a particular question.
  • Vote action – handles voting for a particular choice in a particular question.

1,編寫viewsdjango

from django.shortcuts import render
from django.shortcuts import get_object_or_404, render
from .models import Question
from django.http import HttpResponse
# Create your views here.url

def index(request):
    latest_question_list= Question.objects.order_by('-pub_date')[:5]
    context = {'latest_question_list': latest_question_list}
    return render(request, 'polls/index.html', context)
def detail(request, question_id):
    question = get_object_or_404(Question, pk=question_id)
    return render(request, 'polls/detail.html', {'question': question})
def vote(request, question_id):
    return HttpResponse("You're voting on question %s." % question_id)
def results(request, question_id):
    response = "You're looking at the results of question %s."
    return HttpResponse(response % question_id)
 orm

 

2,編寫urlhtm

from django.urls import path
from . import viewsget

urlpatterns=[
path('',views.index,name='index'),
path('<int:question_id>/',views.detail,name='detail'),
path('<int:question_id>/results',views.results,name='results'),
path('<int:question_id>/vote',views.vote,name='vote'),
]
建立文件在  mysite/polls/templates/polls/下建立index.html,detail.htmlit

{% if latest_question_list %}
<ul>
{% for question in latest_question_list %}
    <li><a href="{% url 'detail' question.id %}">{{question.question_text}}</a></li>
{% endfor %}
</ul>io

{% else %}
    <p>no polls </p>
{% endif %}form

detail.htmltest

<h1>{{question.question_text }}</h1> <ul> {% for choice in question.choice_set.all %}     <li>{{ choice.choice_text }}</li> {% endfor %} </ul>  

相關文章
相關標籤/搜索