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表单的更多相关文章

  1. python自动化开发-[第二十天]-form表单,CBV和FBV,序列化

    1.CBV和FBV的用法 2.序列化用法 3.form表单 一.CBV和FBV 1.cbv是 class based view(基于类),fbv是function based view(基于函数) 2 ...

  2. 巨蟒python全栈开发django11:ajax&&form表单上传文件contentType

    回顾: 什么是异步? 可以开出一个线程,我发出请求,不用等待返回,可以做其他事情. 什么是同步? 同步就是,我发送出了一个请求,需要等待返回给我信息,我才可以操作其他事情. 局部刷新是什么? 通过jq ...

  3. python中前后端通信方法Ajax和ORM映射(form表单提交)

    后端从数据库获取数据给到前端: 第一种方式: admin.py文件代码: @admin.route('/showList') def show(): # 获取数据库所有文章数据,得到一个个对象 res ...

  4. python的Web框架,会话保持及Form表单

    会话 从打开浏览器访问到关闭浏览器,这就是一次会话. cookie 技术 cookie是保存在浏览器的,安全度比较低. # 设置cookie范式,在view中设置 def index(request) ...

  5. python django Form表单

    Django 拥有自己独立的表单功能块,可以完成: 1.表单的定义 2.表单的校验 3.表单的前端样式 等功能,方便我们开发,那么接下来,我们看一下表单的定义 首先我们确定我们要编写的功能,一个提供给 ...

  6. Django基础,Day5 - form表单投票详解

    投票URL polls/urls.py: # ex: /polls/5/vote/ url(r'^(?P<question_id>[0-9]+)/vote/$', views.vote, ...

  7. django之form表单验证

    django中的Form一般有两种功能: 输入html 验证用户输入 #!/usr/bin/env python # -*- coding:utf- -*- import re from django ...

  8. python_way day19 HTML-day5 (form表单验证,CSRF,cookie,session,缓存)

    python-way day19 1. dJango的form表单验证 2.CSRF 跨站请求伪造 3.cookie,session 4.缓存 一,django表单验证功能 1.django验证基础: ...

  9. 【django之form表单】

    一.构建一个表单 假设你想在你的网站上创建一个简单的表单,以获得用户的名字.你需要类似这样的模板: <form action="/your-name/" method=&qu ...

  10. Form表单 JSON Content-type解析

    Form表单 JSON Content-type解析 1 表单Form概述 在Form表单中,参数一般有: action 表单提交的url method 提交方式:post get name 表单的属 ...

随机推荐

  1. windows不重装系统和重建MBR分区表来扩展系统盘

    step1. 下载Acronis Disk Director Suite工具,随便一搜都能下载的到. step2. 这个软件使用非常easy,网上有非常多图文教程.扩充盘使用Increase the ...

  2. 如何做PPT

    如何做出更漂亮的PPT? 1.文字对齐,PPT字体最好使用微软雅黑,文档最好使用宋体 2.总分总的叙述形式 3.颜色最好使用冷色系,蓝色.灰色.灰蓝色等等 4.每段话中的重点内容标出特殊颜色 5.可使 ...

  3. NGUI多行输入框和滚动条结合使用(text list script 和scroll bar script)

    一,我们添加一个label,如下图:将label属性设置 二,给label添加一个box collider.然后在add component 添加test list,如下图: 三,添加一个脚本Test ...

  4. 道路识别demo

    最近做的道路识别一开始终于弄懂了点东西,一开始在网上找到了一个简单的道路识别的opencvsharp的版本.我觉得opencvsharp真的是一个很好的东西,它封装了比opencv更多的数据结构和库, ...

  5. 如何判断元素是否在可视区域内--getBoundingClientRect

    介绍 Element.getBoundingClientRect()方法返回元素的大小及其相对于视口的位置. 根据MDN文档 getBoundingClientRect 方法返回的是一个DOMRect ...

  6. CSS-05 html和body标签

    html和body标签 一直对这两个标签有迷惑,查了一些网上资料整理了一下. 1.html和body标签的背景 1.当给body一个背景色时候,背景图是充满整个窗口的,这里看上去是body标签下的背景 ...

  7. 卷积神经网络CNN原理以及TensorFlow实现

    在知乎上看到一段介绍卷积神经网络的文章,感觉讲的特别直观明了,我整理了一下.首先介绍原理部分. [透析] 卷积神经网络CNN究竟是怎样一步一步工作的? 通过一个图像分类问题介绍卷积神经网络是如何工作的 ...

  8. Sass函数:数学函数-abs函数

    abs( ) 函数会返回一个数的绝对值. >> abs(10) 10 >> abs(-10) 10 >> abs(-10px) 10px >> abs( ...

  9. springboot使用异步查询数据

    主要适用于需要查询多种类型的数据,而且二者的参数没有关联的情况. 1.开启异步调用注解 2.创建抽象类,定义相关方法 /** * @author:YZH * time: 2019/8/8 12:16 ...

  10. java 比较两个日期大小(2) 用before(), after()

    调试代码,我就不整理了,记下after()  before() 觉得这张图好美,从人家的博客上截的,找不到链接了