python-form表单
form表单
form属于块级标签
功能:
表单用于向服务器传输数据,从而实现用户与web服务器的交互
表单能够包含input系列标签,比如文本字段。复选框。单选框。提交按钮等等
表单还可以包含textarea select fieldset labl标签
表单属性:
属性 | 描述 |
---|---|
accept-charset | 规定在提交表单时使用的字符集(默认:页面字符集) |
action | 规定向何处提交表单的地址 URL(提交页面) |
autocomplete | 规定浏览器应该自动完成表单(默认:开启) |
enctype | 规定被提及的数据的编码(默认:url-encoded) |
methon | 规定提交表单时所用的方法(默认:get) |
name | 规定识别表单的名称(对于DOM 使用:document.forms.name) |
novalidate | 规定浏览器不验证表单 |
target | 规定action属性中地址的目标(默认:_self) |
表单元素:
基本概念:
html表单是html里比较复杂的部分,表单往往和脚本 动态页面 数据处理等功能结合 因此他是制作动态网站很重要的内容
表单一般手机用户的输入信息
表单工作原理:
访问者在浏览表单网页时,可填写必须的信息,然后按某个按钮提交。这些信息通过internet传送的服务端
服务器上专门的程序对这些数据进行处理,如果有错误会返回错误信息,并要求纠正错误。当服务器完整无误后,服务器会反馈一个输入完成的信息
属性
- name:表单的名称,用于js来操作控制表单时使用;
- id:表单的名称,用于js来操作控制表单时使用;
- action:指定表单的处理程序,一般时php,如action="login.php"
- method:表单的提交方式,一般取值get(默认)和post
action属性就是表示,表单提交到哪里
method属性就是表示用什么方法提交,如:post get
get和post的区别:
GET方式:
将表单数据,以"name=value"形式追加到action指定的处理程序的后面,两者间用"?"隔开,每一个表单的"name=value"间用"&"号隔开。
特点:只适合提交少量信息,并且不太安全(不要提交敏感数据)、提交的数据类型只限于ASCII字符。
POST方式:
将表单数据直接发送(隐藏)到action指定的处理程序。POST发送的数据不可见。Action指定的处理程序可以获取到表单数据。
特点:可以提交海量信息,相对来说安全一些,提交的数据格式是多样的(Word、Excel、rar、img)。
Enctype:
表单数据的编码方式(加密方式),取值可以是:application/x-www-form-urlencoded、multipart/form-data。Enctype只能在POST方式下使用。
- Application/x-www-form-urlencoded:默认加密方式,除了上传文件之外的数据都可以
- Multipart/form-data:上传附件时,必须使用这种编码方式.
input 输入标签(文本框)(内联标签)
type属性值 | 表现形式 | 对应代码 |
---|---|---|
text | 单行输入文本 | input type=text" / |
password | 密码输入框(不显示明文) | input type="password" / |
date | 日期输入框 | input type="date" / |
checkbox | 复选框 | input type="checkbox" checked="checked" name='x' / |
radio | 单选框 | input type="radio" name='x' / |
submit | 提交按钮 | input type="submit" value="提交" / #发送浏览器上输入标签中的内容,配合form表单使用,页面会刷新 |
reset | 重置按钮 | input type="reset" value="重置" #页面不会刷新,将所有输入的内容清空 |
button | 普通按钮 | input type="button" value="普通按钮" / |
hidden | 隐藏输入框 | input type="hidden" / |
file | 文本选择框 | input type="file" /(等学了form表单之后再学这个) |
用于接收用户输入。
<input type="text" />
用户名 : <input type="text" name = 'username' value = 'alex' readonly>
密 码 : <input type="password" name = 'passwd'>
<input type="radio" name = 'sex' value="m" checked> 男
<input type="radio" name = 'sex' value="f"> 女
<input type="checkbox" name = 'hobby' value="1" checked disabled> 抽烟
<input type="checkbox" name = 'hobby' value="2"> 喝酒
<input type="checkbox" name = 'hobby' value="3"> 烫头
<input type="submit">
属性
type="属性值"
:文本类型。属性值可以是:text
(默认)password
:密码类型
radio
:单选按钮,名字相同的按钮作为一组进行单选(单选按钮,天生是不能互斥的,如果想互斥,必须要有相同的name属性。name就是“名字”。
)。非常像以前的收音机,按下去一个按钮,其他的就抬起来了。所以叫做radio。checkbox
:多选按钮,名字相同的按钮作为一组进行选择。checked
:将单选按钮或多选按钮默认处于选中状态。当``标签的type="radio"
时,可以用这个属性。属性值也是checked,可以省略。hidden
:隐藏框,在表单中包含不希望用户看见的信息button
:普通按钮,结合js代码进行使用。submit
:提交按钮,传送当前表单的数据给服务器或其他程序处理。这个按钮不需要写value自动就会有“提交”文字。这个按钮真的有提交功能。点击按钮后,这个表单就会被提交到form标签的action属性中指定的那个页面中去。reset
:重置按钮,清空当前表单的内容,并设置为最初的默认值image
:图片按钮,和提交按钮的功能完全一致,只不过图片按钮可以显示图片。file
:文件选择框。
提示:如果要限制上传文件的类型,需要配合JS来实现验证。对上传文件的安全检查:一是扩展名的检查,二是文件数据内容的检查。
value="内容"
:文本框里的默认内容(已经被填好了的)size="50"
:表示文本框内可以显示五十个字符。一个英文或一个中文都算一个字符。
注意size属性值的单位不是像素哦。readonly
:文本框只读,不能编辑。因为它的属性值也是readonly,所以属性值可以不写。
用了这个属性之后,在google浏览器中,光标点不进去;在IE浏览器中,光标可以点进去,但是文字不能编辑。disabled
:文本框只读,不能编辑,光标点不进去。属性值可以不写。name
: 提交数据之后以name属性为依据placeholder
: 给text或者password框添加提示,当输入框获取到焦点时提示自动消失
示例:
<form>
姓名:<input value="呵呵" >逗比<br>
昵称:<input value="哈哈" readonly=""><br>
名字:<input type="text" value="name" disabled=""><br>
密码:<input type="password" value="pwd" size="50"><br>
性别:<input type="radio" name="gender" value="male" checked="">男
<input type="radio" name="gender" value="female" >女<br>
爱好:<input type="checkbox" name="love" value="eat">吃饭
<input type="checkbox" name="love" value="sleep">睡觉
<input type="checkbox" name="love" value="bat">打豆豆
</form>
4种按钮的举例:
<form>
<input type="button" value="普通按钮"><br>
<input type="submit" value="提交按钮"><br>
<input type="reset" value="重置按钮"><br>
<input type="image" src="images/bojie.jpeg" width="400" value="图片按钮2"><br>
<input type="file" value="文件选择框">
</form>
select:下拉列表标签(内联标签)
select标签的属性
multiple
:可以对下拉列表中的选项进行多选。没有属性值。size="3"
:如果属性值大于1,则列表为滚动视图。默认属性值为1,即下拉视图。
option标签的属性
selected
:预选中。没有属性值。
示例:
<form>
<select>
<option>小学</option>
<option>初中</option>
<option>高中</option>
<option>大学</option>
<option selected="">研究生</option>
</select>
<br><br><br>
<select size="3">
<option>小学</option>
<option>初中</option>
<option>高中</option>
<option>大学</option>
<option>研究生</option>
</select>
<br><br><br>
<select multiple="">
<option>小学</option>
<option>初中</option>
<option selected="">高中</option>
<option selected="">大学</option>
<option>研究生</option>
</select>
<br><br><br>
</form>
<!--
<select name="city" size="3" multiple>
<option value="1">北京</option>
<option value="2" selected>上海</option>
<option value="3">天津</option>
<option value="4">广州</option>
</select>
-->
textarea标签:多行文本输入框(内联标签)
text就是“文本”,area就是“区域”。
属性
value
:提交给服务器的值。rows="4"
:指定文本区域的行数。 表示的是文本域的高度cols="20"
:指定文本区域的列数。 表示的是文本域的宽度readonly
:只读。name
:提交数据之后以name属性为依据
示例代码
<form>
<textarea name="txtInfo" rows="4" cols="20">路飞学城</textarea>
<textarea name="content" id="" cols="30" rows="10"></textarea>
</form>
表单的语义化
比如,我们在注册一个网站的信息的时候,有一部分是必填信息,有一部分是选填信息,这个时候可以利用表单的语义化。
<form>
<fieldset>
<legend>账号信息</legend>
姓名:<input value="呵呵" >逗比<br>
密码:<input type="password" value="pwd" size="50"><br>
</fieldset>
<fieldset>
<legend>其他信息</legend>
性别:<input type="radio" name="gender" value="male" checked="">男
<input type="radio" name="gender" value="female" >女<br>
爱好:<input type="checkbox" name="love" value="eat">吃饭
<input type="checkbox" name="love" value="sleep">睡觉
<input type="checkbox" name="love" value="bat">打豆豆
</fieldset>
</form>
label标签(内联标签)
我们先来看下面一段代码:
<input type="radio" name="sex" /> 男
<input type="radio" name="sex" /> 女
lable 的 for关联一个输入款的id,如果点击lable中的文字,这个输入框会自动获取到焦点
对于上面这样的单选框,我们只有点击那个单选框(小圆圈)才可以选中,点击“男”、“女”这两个文字时是无法选中的;于是,label标签派上了用场。
本质上来讲,“男”、“女”这两个文字和input标签时没有关系的,而label就是解决这个问题的。我们可以通过label把input和汉字包裹起来作为整体。
解决方法如下:
<input type="radio" name="sex" id="nan" /> <label for="nan">男</label>
<input type="radio" name="sex" id="nv" /> <label for="nv">女</label>
上方代码中,input元素要有一个id,然后label标签有一个for属性,和id相同,那么这个label和input就有绑定关系了。
当然了,复选框也有label:(任何表单元素都有label)
<input type="checkbox" id="kk" />
<label for="kk">10天内免登陆</label>
button标签
提交按钮:form表单内部使用相当于提交,外部使用只普通按钮
在form表单内部外部都可以使用
在内部表示提交
在外部只普通按钮
<button>submit按钮</button>
form表单示例:
<form action="http://127.0.0.1:9000">
<!--用户名 : <input type="text" name="username" placeholder="请输入手机号或邮箱进行登录">-->
<div>
<label for="user">用户名 :</label>
<input id="user" type="text" name = 'username' value = 'alex'></div>
<div> 密 码 : <input type="password" name = 'passwd' readonly></div>
<div>性别 :
<input type="radio" name = 'sex' value="m" checked> 男
<input type="radio" name = 'sex' value="f"> 女
</div>
<div>
<input type="checkbox" name = 'hobby' value="1" checked disabled> 抽烟
<input type="checkbox" name = 'hobby' value="2"> 喝酒
<input type="checkbox" name = 'hobby' value="3"> 烫头
</div>
<input type="submit">
<input type="button" value="按钮">
<input type="reset">
<input type="hidden">
<input type="file">
<input type="date">
<button>submit按钮</button>
<textarea name="content" cols="30" rows="10"></textarea>
<select name="" size="3" multiple>
<option value="">北京</option>
<option value="" selected>上海</option>
<option value="">天津</option>
<option value="">广州</option>
</select>
</form>
python-form表单的更多相关文章
- python自动化开发-[第二十天]-form表单,CBV和FBV,序列化
1.CBV和FBV的用法 2.序列化用法 3.form表单 一.CBV和FBV 1.cbv是 class based view(基于类),fbv是function based view(基于函数) 2 ...
- 巨蟒python全栈开发django11:ajax&&form表单上传文件contentType
回顾: 什么是异步? 可以开出一个线程,我发出请求,不用等待返回,可以做其他事情. 什么是同步? 同步就是,我发送出了一个请求,需要等待返回给我信息,我才可以操作其他事情. 局部刷新是什么? 通过jq ...
- python中前后端通信方法Ajax和ORM映射(form表单提交)
后端从数据库获取数据给到前端: 第一种方式: admin.py文件代码: @admin.route('/showList') def show(): # 获取数据库所有文章数据,得到一个个对象 res ...
- python的Web框架,会话保持及Form表单
会话 从打开浏览器访问到关闭浏览器,这就是一次会话. cookie 技术 cookie是保存在浏览器的,安全度比较低. # 设置cookie范式,在view中设置 def index(request) ...
- python django Form表单
Django 拥有自己独立的表单功能块,可以完成: 1.表单的定义 2.表单的校验 3.表单的前端样式 等功能,方便我们开发,那么接下来,我们看一下表单的定义 首先我们确定我们要编写的功能,一个提供给 ...
- Django基础,Day5 - form表单投票详解
投票URL polls/urls.py: # ex: /polls/5/vote/ url(r'^(?P<question_id>[0-9]+)/vote/$', views.vote, ...
- django之form表单验证
django中的Form一般有两种功能: 输入html 验证用户输入 #!/usr/bin/env python # -*- coding:utf- -*- import re from django ...
- python_way day19 HTML-day5 (form表单验证,CSRF,cookie,session,缓存)
python-way day19 1. dJango的form表单验证 2.CSRF 跨站请求伪造 3.cookie,session 4.缓存 一,django表单验证功能 1.django验证基础: ...
- 【django之form表单】
一.构建一个表单 假设你想在你的网站上创建一个简单的表单,以获得用户的名字.你需要类似这样的模板: <form action="/your-name/" method=&qu ...
- Form表单 JSON Content-type解析
Form表单 JSON Content-type解析 1 表单Form概述 在Form表单中,参数一般有: action 表单提交的url method 提交方式:post get name 表单的属 ...
随机推荐
- k8s入门教程
1. k8s概述 Kubernetes(简称K8S) 是Google开源的分布式的容器管理平台,方便我们在服务器集群中管理我们容器化应用. 教程主要介绍怎么使用阿里云容器服务(kubernetes版本 ...
- 【java】jstack分析查看线程状态
演示代码 public class StackTest { public static void main(String[] args) { Thread thread = new Thread(ne ...
- 源码分析--ArrayList(JDK1.8)
ArrayList是开发常用的有序集合,底层为动态数组实现.可以插入null,并允许重复. 下面是源码中一些比较重要属性: 1.ArrayList默认大小10. /** * Default initi ...
- PHP内置函数parse_str会自动进行urldecode(URL解码)
用法:void parse_str ( string $str [, array &$arr] ) parse_str用来解析(分离)URL中的查询字符串(Query String),所谓查询 ...
- ssh-add - 向认证代理添加 RSA 或 DSA 身份数据
总览 (SYNOPSIS) ssh-add [-lLdDx ] [-t life ] [file ... ] ssh-add -s reader ssh-add -e reader 描述 (DESCR ...
- linux单机部署kafka(filebeat+elk组合)
filebeat+elk组合之kafka单机部署 准备: kafka下载链接地址:http://kafka.apache.org/downloads.html 在这里下载kafka_2.12-2.10 ...
- windows切换窗口和网页快捷键
alt+tab 切换窗口win+D 显示桌面,再按一下返回运来的网页win+M 所有程序最小化 网页之间切换(我用的是360) ctrl + tab 往回切 ctrl + shift +tab
- Tomcat架构与原理
Tomcat架构与原理 架构图 原理 ①.用户点击网页内容,请求被发送到本机端口8080,被在那里监听的Coyote HTTP/1.1 Connector获得. ②.Connector把该请求交给它所 ...
- JVM分为哪些区,每一个区干嘛的?
程序计数器PC 线程私有的 它可以看做是当前线程所执行的字节码的行号指示器 内存区域中唯一一个没有规定任何OutOfMemoryError的区域 Java虚拟机栈 线程私有的 每个方法在执行的同时都会 ...
- 【LeetCode】栈 stack(共40题)
[20]Valid Parentheses (2018年11月28日,复习, ko) 给了一个字符串判断是不是合法的括号配对. 题解:直接stack class Solution { public: ...