Django视图

在polls包里新建templates目录,

再创建一个目录 polls

然后在其中新建一个文件index.html,

模板文件的路径应该是

polls/templates/polls/index.html

{% 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>
{% else %}
<p>No polls are available.</p>
{% endif %}

修改polls包里面的views.py

from django.http import HttpResponse
from django.template import loader

from polls.models import Question

# Create your views here.


def index(request):
latest_question_list = Question.objects.order_by('-pub_date')[:5]
# 展示数据库里以发布日期排序的最近5个投票问题,以空格分割
template = loader.get_template('polls/index.html')
context = {
'latest_question_list': latest_question_list,
}
# 载入polls/index.html模板文件,
# 并且向它传递一个上下文(context),
# 这个上下文是一个字典,它将模板内的变量映射为Python对象
return HttpResponse(template.render(context, request))


def detail(request, question_id):
return HttpResponse("你在看问题:%s." % question_id)
# %s表示格式化一个对象为字符


def results(request, question_id):
response = "你在看问题的结果:%s."
return HttpResponse(response % question_id)


def vote(request, question_id):
return HttpResponse("你在投票讨论这个问题:%s." % question_id)

修改polls包里面的polls_urls.py

from django.urls import path
from . import views


urlpatterns = [
path('', views.index, name='index'),
# 示例:/polls/

path('<int:question_id>/', views.detail, name='detail'),
# 示例:/polls/5/

path('<int:question_id>/results/', views.results, name='results'),
# 示例:/polls/5/results/

path('<int:question_id>/vote/', views.vote, name='vote'),
# 示例:/polls/5/vote/
]

python manage.py runserver

启动服务

http://127.0.0.1:8000/polls/

http://127.0.0.1:8000/polls/34/

http://127.0.0.1:8000/polls/34/results/

http://127.0.0.1:8000/polls/34/vote/

原文地址:https://www.cnblogs.com/yjlch1016/p/8686940.html