Django form入门详解--1
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的更多相关文章
- Django form入门详解--2
调整form的输出格式: 默认情况下form的格式化输出是基本table的样式的.但是django中还是为form提供发别的输出样式 1.默认的table样式输出 <html> <h ...
- django session入门详解
概括性的讲: 1.django默认是打开对session的支持的 2.默认情况下session相关的数据会保存在数据库中.浏览器端只保存了session id session 的科普: 1.动态网站中 ...
- Linq之旅:Linq入门详解(Linq to Objects)
示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...
- SQL注入攻防入门详解
=============安全性篇目录============== 本文转载 毕业开始从事winfrm到今年转到 web ,在码农届已经足足混了快接近3年了,但是对安全方面的知识依旧薄弱,事实上是没机 ...
- SQL注入攻防入门详解(2)
SQL注入攻防入门详解 =============安全性篇目录============== 毕业开始从事winfrm到今年转到 web ,在码农届已经足足混了快接近3年了,但是对安全方面的知识依旧薄弱 ...
- Quartz 入门详解
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单或为运行十个,百个, ...
- Redis快速入门详解
Redis入门详解 Redis简介 Redis安装 Redis配置 Redis数据类型 Redis功能 持久化 主从复制 事务支持 发布订阅 管道 虚拟内存 Redis性能 Redis部署 Redis ...
- [转]SQL注入攻防入门详解
原文地址:http://www.cnblogs.com/heyuquan/archive/2012/10/31/2748577.html =============安全性篇目录============ ...
- [置顶]
xamarin android toolbar(踩坑完全入门详解)
网上关于toolbar的教程有很多,很多新手,在使用toolbar的时候踩坑实在太多了,不好好总结一下,实在浪费.如果你想学习toolbar,你肯定会去去搜索androd toolbar,既然你能看到 ...
随机推荐
- Oracle Data Integrator 12c----包(Package)
1 创建"包" Designer->项目->ODI_Exercise ->第一个文件夹->包,右键"新建程序包": "定义&q ...
- redis数据淘汰策略
概述 在 redis 中,允许用户设置最大使用内存大小 server.maxmemory,在内存限定的情况下是很有用的.譬如,在一台 8G 机子上部署了 4 个 redis 服务点,每一个服务点分配 ...
- Servlet学习(一)
Servlet的运行过程 Servlet程序是由WEB服务器调用,web服务器收到客户端的Servlet访问请求后: ①Web服务器首先检查是否已经装载并创建了该Servlet的实例对象.如果是,则直 ...
- CentOS下递归遍历文件夹下所有文件,查找指定字符
命令如下: find . | xargs grep -ri "XXX"
- 防火墙 Firewalld
RHEL7支持的防火墙: IPTABLES IP6TABLES FIREWALL EBTABLES 命令模式: firewall-cmd 图形化界面: firewall-config Firewall ...
- 批处理转exe工具(Quick Batch File Compiler )|bat格式化exe
看到的,就是回忆.历史总是那么漫不经心,走完一生.留下可以记忆的脚本.... 对于window编写的bat脚本,想加密吗? 你所想的,前辈们基本上都有产出成果.所以在这个开源.共享.进步的互联网时代. ...
- 基于RecyclerView实现的分组显示信息demo
发布时间:2018-11-07 技术:Android Studio 3.1.3+ RecyclerView+sectionRecyclerViewAdapter 概述 利用sectionedR ...
- 【TP5.0】tp5.0实现连接多个数据库,实现类似3.2M(‘table’,'prefix_','db_config2')的CURD操作
1.db_connect的name链式操作,类似于3.2的M('table','prefix_','db_config2') /** * db_connect的name链式操作,类似于3.2的M('t ...
- Maven Package Plugins And Maven Test
在使用Maven时候,大家避免不了使用大量插件: 1. maven-compiler-plugin 指定JDK版本和编码方式 ? ?compiler插件能解决2个问题: 第一:指定JDK版本--mav ...
- iOS 实现加载转圈效果
1.思路: 新建一个view,添加shape,给予一个动画实现. 2.效果图: 效果1: 效果2: gif有点卡,代码运行不会这样. 3.源码(整个类放进来的) 效果1源码: // // YJDown ...