继视频04 and视频5

添加选项

from django.contrib import admin

# Register your models here.
from . models import Question,Choice

admin.site.register(Question)
admin.site.register(Choice)

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'polls.apps.PollsConfig',
]

class Choice(models.Model):
    question = models.ForeignKey(Question,on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)
    def __str__(self):
         return self.choice_text
    def was_published_recently(self):
        return  self.pub_Date >= timezone.now() - datetime.timedelta(days=1)

在mysite目录下运行

python manage.py makemigrations polls

 python manage.py migrate

开启服务器python manage.py runserver

站点增加了choice

点击加号 add choice

选择问题  添加选项 保存并添加另一个  然后 点击最后一个保存

添加视图

#投票详情视图
def detail(request,question_id):
     return HttpResponse("你正在看问题%s."%question_id)
#投票结果视图
def results(request,question_id):
     repones = "你正在看问题的结果%s"
     return HttpResponse(repones%question_id)
#投票视图
def vote(request,question_id):
     return HttpResponse("你正在投票的问题是%s"%question_id)

添加路由

    # http://127.0.0.1:8000/polls/1/
    path('<int:question_id>/',views.detail,name='detail')

添加投票结果 和投票 的路由

    # http://127.0.0.1:8000/polls/1/results/
    path('<int:question_id>/results/',views.results,name='results'),
    # http://127.0.0.1:8000/polls/1/vote/
    path('<int:question_id>/vote/', views.vote, name='vote'),

 

以上代码没用。进一步改进代码

def index(request):
     latest_question_list = Question.objects.order_by('-pub_date')[:5]
     output = '<br/>'.join([q.question_text for q in latest_question_list])
     return HttpResponse(output)

后台添加,前台也会有

添加模板

def index(request):
     latest_question_list = Question.objects.order_by('-pub_date')[:5]
     template = loader.get_template('polls/index.html')
     context={
          'latest_question_list':latest_question_list
     }
     return HttpResponse(template.render(context,request))

进一步修改模板

<body>
<h3>下面是我的投票</h3>
{% if latest_question_list %}
<ul>
    {% for question in latest_question_list %}
<!--    <li><a href="/polls/1">你喜欢django吗?</a></li>-->
<!--     <li><a href="/polls/2">你喜欢python吗?</a></li>-->
<!--    <li><a href="/polls/3">what's up?</a></li>-->
     <li><a href="/polls/{{question.id}}/">{{question.question_text}}</a></li>
    {% endfor %}
</ul>
{% else %}
<p>No polls are available</p>
{% endif %}
</body>

再次修改

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)

实现可点击跳转

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值