django: form
2013-10-16 22:08
232 查看
本讲开始介绍 Django 中表单的应用。
依然以前面的工程为例继续演示。
一,创建 url 映射,编辑 csvt03/urls.py:
二,编辑 blog/views.py:
三,模板文件 blog/templates/register.html:
四,访问 127.0.0.1:8000/blog/register 可以见到表单了。但提交内容会显示 403 错误:“CSRF verification failed. Request aborted.”
CSRF 是 Cross Site Request Forgery (跨站点请求欺骗)的缩写,这里先简单修改 setting.py,禁用 CSRF 中间件。
这样,访问页面并提交后,后台会打印出提交的内容:
依然以前面的工程为例继续演示。
一,创建 url 映射,编辑 csvt03/urls.py:
from django.conf.urls import patterns, include, url # Uncomment the next two lines to enable the admin: from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', # Examples: # url(r'^$', 'csvt03.views.home', name='home'), # url(r'^csvt03/', include('csvt03.foo.urls')), # Uncomment the admin/doc line below to enable admin documentation: # url(r'^admin/doc/', include('django.contrib.admindocs.urls')), # Uncomment the next line to enable the admin: url(r'^admin/', include(admin.site.urls)), url(r'^index/$','blog.views.index'), url(r'^blog/show_author/$', 'blog.views.show_author'), url(r'blog/register/$', 'blog.views.register'), # Django Form )
二,编辑 blog/views.py:
from django.shortcuts import render_to_response as r2r from blog.models import Employee, Author, Book def index(req): emps = Employee.objects.all() return r2r('index.html', {'emps':emps}) def show_author(req): authors = Author.objects.all() return r2r('show_author.html', {'authors':authors}) from django import forms from django.http import HttpResponse class UserForm(forms.Form): name = forms.CharField() def register(req): if req.method == 'POST': form = UserForm(req.POST) # Binding if form.is_valid(): print form.cleaned_data return HttpResponse('ok') else: form = UserForm() return r2r('register.html', {'form':form})
三,模板文件 blog/templates/register.html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Django DB</title> </head> <body> <form method='post'> {{form}} <input type='submit' value='ok'/> </form> </body> </html>
四,访问 127.0.0.1:8000/blog/register 可以见到表单了。但提交内容会显示 403 错误:“CSRF verification failed. Request aborted.”
CSRF 是 Cross Site Request Forgery (跨站点请求欺骗)的缩写,这里先简单修改 setting.py,禁用 CSRF 中间件。
MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', # 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', # Uncomment the next line for simple clickjacking protection: # 'django.middleware.clickjacking.XFrameOptionsMiddleware', )
这样,访问页面并提交后,后台会打印出提交的内容:
0 errors found October 16, 2013 - 08:59:15 Django version 1.5.4, using settings 'csvt03.settings' Development server is running at http://127.0.0.1:8000/ Quit the server with CONTROL-C. {'name': u'data posting...'} [16/Oct/2013 08:59:24] "POST /blog/register/ HTTP/1.0" 200 2
相关文章推荐
- Django 之Form组件
- django_form_表单的模版渲染形势以及可用字段
- django的form组件的插件相关参数和保留内容
- Django中的Form(二)
- django 实战 - eLeave Form
- Python3 之 Django Web框架Form组件(二)
- django-form表单的提交
- Django笔记 —— 表单(form)
- django admin ModelForm field 验证
- 第十一篇:web之Django之Form组件
- Django学习系列之Form表单结合ajax
- Django—Form两种保留用户提交数据的方法
- Django 框架之Form组件
- 使用Django Form解决表单数据无法动态刷新的两种方法
- Django的Form、CSRF、cookie和session
- Django(八)上:Model操作和Form操作
- django 用ajax+post提交form 实现前后台数据绑定
- Django 博客项目02 Form验证+ 上传头像(预览)+Ajax用户注册
- Django Form的学习
- django form 显示