form在django中的作用:

  1、可以用于自动生成form的html

  2、数据校验

  3、与model一在一起使用、可以大的方便数据驱动型网站的开发

编程中有许多的东西是“不可描述”的、只有动手去操作一下才会有感觉、下面是一个form使用的入门级例子

1、定义form类:

from django import forms 

class NameForm(forms.Form):
your_name = forms.CharField(label='Your name', max_length=100)

2、在template中使用form:

<html>
<head>
<title>your name</title>
<meta charset="utf8"/>
</head> <body>
<form action={% url 'your-name' %} method="POST">
{% csrf_token %}
{{ form }}
<input type="submit" value="submit">
</form>
</body>
</html>

 3、创建视图:

from django.shortcuts import render
from django.http import HttpResponse
from app01.forms import NameForm
#from django.http import views
# Create your views here. def yourName(request):
"""
"""
if request.method == 'POST':
#根据POST上来的数据创建form表单
form = NameForm(request.POST)
#校验表单的数据
if form.is_valid():
#返回一个类似 Hello xxx的页面
return HttpResponse('Hello {0}'.format(form.cleaned_data['your_name']))
#如果不是POST那么就让用户填写表单数据
return render(request,'app01/your-name-form.html',context={'form':NameForm()})

 4、防问your-name页面:

  get的方式访问页面

  填写名字到输入框

  提交表单数据

总结:

  1、上面的例子中用于了form的两个工能,一个是自动渲染html标签、另一个是数据校验

  页面的html代码如下:

<html>
<head>
<title>your name</title>
<meta charset="utf8"/>
</head> <body>
<form action=/app01/yourname method="POST">
<input type='hidden' name='csrfmiddlewaretoken' value='H1wmfUgQ6yMjJyEAjhnjnlHXOSjxLUKlhyjEoJBqArgQJaTTKygpxcL6ZIjXsDom' />
<tr><th><label for="id_your_name">Your name:</label></th><td><input type="text" name="your_name" maxlength="100" required id="id_your_name" /></td></tr>
<input type="submit" value="submit">
</form>
</body>
</html>

  数据检验

        if form.is_valid():
#返回一个类似 Hello xxx的页面
return HttpResponse('Hello {0}'.format(form.cleaned_data['your_name']))

----------------------------------------------------------------------------------------------

Django form入门详解--1的更多相关文章

  1. Django form入门详解--2

    调整form的输出格式: 默认情况下form的格式化输出是基本table的样式的.但是django中还是为form提供发别的输出样式 1.默认的table样式输出 <html> <h ...

  2. django session入门详解

    概括性的讲: 1.django默认是打开对session的支持的 2.默认情况下session相关的数据会保存在数据库中.浏览器端只保存了session id session 的科普: 1.动态网站中 ...

  3. Linq之旅:Linq入门详解(Linq to Objects)

    示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...

  4. SQL注入攻防入门详解

    =============安全性篇目录============== 本文转载 毕业开始从事winfrm到今年转到 web ,在码农届已经足足混了快接近3年了,但是对安全方面的知识依旧薄弱,事实上是没机 ...

  5. SQL注入攻防入门详解(2)

    SQL注入攻防入门详解 =============安全性篇目录============== 毕业开始从事winfrm到今年转到 web ,在码农届已经足足混了快接近3年了,但是对安全方面的知识依旧薄弱 ...

  6. Quartz 入门详解

    Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单或为运行十个,百个, ...

  7. Redis快速入门详解

    Redis入门详解 Redis简介 Redis安装 Redis配置 Redis数据类型 Redis功能 持久化 主从复制 事务支持 发布订阅 管道 虚拟内存 Redis性能 Redis部署 Redis ...

  8. [转]SQL注入攻防入门详解

    原文地址:http://www.cnblogs.com/heyuquan/archive/2012/10/31/2748577.html =============安全性篇目录============ ...

  9. [置顶] xamarin android toolbar(踩坑完全入门详解)

    网上关于toolbar的教程有很多,很多新手,在使用toolbar的时候踩坑实在太多了,不好好总结一下,实在浪费.如果你想学习toolbar,你肯定会去去搜索androd toolbar,既然你能看到 ...

随机推荐

  1. mahout做推荐时uid,pid为string类型

    很幸运找到这篇文件,解了燃眉之急. http://blog.csdn.net/pan12jian/article/details/38703569 mahout做推荐的输入只能是long类型,但在某些 ...

  2. 行内元素有哪些?块级元素有哪些? 空(void)元素有那些?

    行内元素:a.b.span.img.input.strong.select.label.em.button.textarea块级元素:div.ul.li.dl.dt.dd.p.h1-h6.blockq ...

  3. unity3d uv动画

    做个总结吧.算是. 之前做过一个项目,是一个关于太空大战的项目. 算是自己做的吧.大体环境是unity3d + win32,mac上不行.好像不支持这个,原因未知.希望知道的告诉我下. 以下具体说下整 ...

  4. tcp 两个重要窗口:滑动窗口 和 拥塞窗口

    一:滑动窗口是接受数据端使用的窗口大小,用来告知发送端接收端的缓存大小,以此可以控制发送端发送数据的大小,从而达到流量控制的目的,对应==>rwnd:接收端窗口(receiver window) ...

  5. 〖Linux〗ADT_Bundle配置

    1. 配置自动补全: Windows -> preferences -> 搜索assist,修改 java xml自动触发补全:.abcdefghijklmnopqrstuvwxyzABC ...

  6. JAVA识别字符串是数字(英文)还是汉字,web页面进行字符截断的帮助类

    public static void main(String[] args) { //长度是2说明是英文/数字/英文状态下的字符,长度为4说明是汉字/中文状态下的字符 String str = &qu ...

  7. rhel7.x配置本地yum

    转载:http://www.mvpbang.com/articles/2017/12/22/1513948827684.html rhel7.x配置本地yum 环境: centos7.4 vmarew ...

  8. windows 10 WMI Provider Host 占用CPU过高的问题

    有些时候win 10开机上几天,就会变成这样,老是找不到根源,所以暂时用重启服务的办法解决了. 重启下windows management instrumentation就可以了.

  9. 在发送信息时应用PendingIntent.FLAG_UPDATE_CURRENT

    1. 连续发送两条信息时,出现bug.以下是bug现象描述. 发送第一条信息,sentReceiver弹出toast告知发送成功,同时在listview中的发送状态立即同步更新为发送成功. 继续发送第 ...

  10. NFC手机上基于软件的卡模拟 重大利好还是安全噩梦?(转)

    Software Card Emulation in NFC-enabled Mobile Phones: GreatAdvantage or Security Nightmare? Michael ...