Django中文官方版08-创建简单表单
2017-05-18 17:01
344 查看
注:表单传递方式类似jsp+servlet1.更新polls/templates/polls/detail.html内容输入:
<h1>{{ question.question_text }}</h1> {% if error_message %}<p><strong>{{ error_message }}</strong></p>{% endif %} <form action="{% url 'polls:vote' question.id %}" method="post"> {% csrf_token %} {% for choice in question.choice_set.all %} <input type="radio" name="choice" id="choice{{ forloop.counter }}" value="{{ choice.id }}" /> <label for="choice{{ forloop.counter }}">{{ choice.choice_text }}</label><br /> {% endfor %} <input type="submit" value="Vote" /> </form>注:{{}}代表参数值,{%%}代表语意标签2.打开polls/urls.py文件输入以下内容:
url(r'^(?P<question_id>[0-9]+)/vote/$', views.vote, name='vote'),注:使用vote方法来处理表单提交的内容3.打开polls/views.py文件修改vote方法的内容:
from django.shortcuts import get_object_or_404, render from django.http import HttpResponseRedirect, HttpResponse from django.urls import reverse from .models import Choice, Question # ... def vote(request, question_id): question = get_object_or_404(Question, pk=question_id) try: selected_choice = question.choice_set.get(pk=request.POST['choice']) except (KeyError, Choice.DoesNotExist): # Redisplay the question voting form. return render(request, 'polls/detail.html', { 'question': question, 'error_message': "You didn't select a choice.", }) else: selected_choice.votes += 1 selected_choice.save() # Always return an HttpResponseRedirect after successfully dealing # with POST data. This prevents data from being posted twice if a # user hits the Back button. return HttpResponseRedirect(reverse('polls:results', args=(question.id,)))注
:request_POST['choice']代表通过post方式传递接收道德参数choice
4.处理表单结束后跳转处理
打开polls/views.py
修改results方法内容:
from django.shortcuts import get_object_or_404, render def results(request, question_id): question = get_object_or_404(Question, pk=question_id) return render(request, 'polls/results.html', {'question': question})5.添加results.html模板文件
在template/polls下面添加results.html文件
输入以下内容:
<h1>{{ question.question_text }}</h1> <ul> {% for choice in question.choice_set.all %} <li>{{ choice.choice_text }} -- {{ choice.votes }} vote{{ choice.votes|pluralize }}</li> {% endfor %} </ul> <a href="{% url 'polls:detail' question.id %}">Vote again?</a>
6.启动runserver,测试表单提交结果
python manage.py runserver[code]输入127.0.0.1:8080
/polls/1/
原文摘自官方地址https://docs.djangoproject.com/en/1.11/intro/tutorial04/,本文只做精简化翻译,详细内容可去指定地址阅读
相关文章推荐
- Django中文官方版01-创建项目
- Django中文官方版02-创建app
- Django速成--创建一个简单的blog
- JFreeChart简单例子_创建柱状图(当遇到中文乱码时,将各个部分的字体分别设置一下就行了)
- django表单处理(一)--最简单的表单
- Yii框架官方指南系列18——使用表单:创建动作
- Yii框架官方指南系列17——使用表单:创建模型
- JSP 中 AJAX 的表单提交中文问题的简单解决方案 (来自BeanSoft's Java Blog )
- django下简单表单验证实现上
- 在Eclipse中创建Django 简单例子 之二
- 创建Django项目(七)——表单
- Nutch教程中文翻译1(官方教程,中英对照)——Nutch的编译、安装和简单运行
- Yii 使用CActiveForm创建表单,以及htmlOptions简单说明
- 用django创建一个简单的sns
- 用django创建一个简单的sns
- Django初级手册1-项目和应用的创建与简单的数据库操作
- Struts1学习笔记(4)-----用Action表单创建登陆程序并简单的验证
- ubuntu linux Django 安装 及 创建简单 的web示例
- Android官方教程翻译(3)——创建一个简单的用户界面
- ActiveReports 报表控件官方中文入门教程 (2)-创建、数据源、浏览以及发布