添加选项
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)
实现可点击跳转