web sockent 实例
模拟 Servert端,浏览器为Client import socketdef handle_request(client): buf = client.recv(1024) client.sendall(bytes("HTTP/1.1 201 OK\r\n\r\n","utf8"))#头部信息 client.sendall(bytes("Hello, python
","utf8"))#标签
def main(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bind(('localhost',8082)) sock.listen(5) while True: connection, address = sock.accept() handle_request(connection) connection.close()if __name__ == '__main__': main()
Hello, python
一、简介
HTML 是什么?
HTML(Hyper Text Markup lauguage,超文本标记语言)超级文本标记语言是标准通用标记语言下的一个应用,也是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分。
htyper text markup language 即超文本标记语言
超文本: 就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。
标记语言: 标记(标签)构成的语言.
HTML 参考手册:
网页==HTML文档,由浏览器解析,用来展示的
静态网页:静态的资源,如xxx.html
动态网页:html代码是由某种开发语言根据用户请求动态生成的
二、标签
<!DOCTYPE html>
如果你的页面添加了<!DOCTYPE html>那么,那么就等同于开启了标准模式,那么浏览器就得老老实实的按照W3C的标准解析渲染页面,这样一来,你的页面在所有的浏览器里显示的就都是一个样子了。
这就是<!DOCTYPE html>的作用。
html文档树形结构图
什么是标签:
- 是由一对尖括号包裹的单词构成 例如: <html> *所有标签中的单词不可能以数字开头.
- 标签不区分大小写.<html> 和 <HTML>. 推荐使用小写.
- 标签分为两部分: 开始标签<a> 和 结束标签</a>. 两个标签之间的部分 我们叫做标签体.
- 有些标签功能比较简单.使用一个标签即可.这种标签叫做自闭和标签.例如: <br/> <hr/> <input /> <img />
- 标签可以嵌套.但是不能交叉嵌套. <a><b></a></b>
标签的属性:
- 通常是以键值对形式出现的. 例如 name="alex"
- 属性只能出现在开始标签 或 自闭和标签中.
- 属性名字全部小写. *属性值必须使用双引号或单引号包裹 例如 name="alex"
- 如果属性值和属性名完全一样.直接写属性名即可. 例如 readonly(input标签,属性只能读和看,不能添加)
<head>
1 <meta>
- <meta>meta标签的组成:meta标签共有两个属性,它们分别是http-equiv属性和name 属性,不同的属性又有不同的参数值,这些不同的参数值就实现了不同的网页 功能。
(1)name和content属性,用来描述网页。content中的内容主要是便于搜索引擎机器人查找信息和分类信息用的。
(2)http-equiv属性,相当于http的文件头作用,它可以向浏览器传回一些有用的信息,以帮助正确和精确地显示网页内容,与之对应的属性值为content,content中的内容其实就是各个参数的变量值。
//(注意后面的引号,分别在秒数的前面和网址的后面 每隔几秒刷新到后面的网址) #全写UTF-8的模式
2 <title>
定义文档的标题。当用户将网页收藏到收藏夹后,title将作为文档链接的默认名称。
title>hello world
3 <link>
rel 属性规定当前文档与被链接文档之间的关系。
//与标题名称同一位置的图标 //rel来说明被链接的文档是一个样式表
4 <script>
src属性,引用javaScript脚本文件。
在 HTML 页面中插入一段 JavaScript:
5 <style>
<style> 标签用于为 HTML 文档定义样式信息。
老男孩 hello
hello
<body>
1: n的取值范围是1~6; 从大到小. 用来表示标题. 2 3 : 段落标签. 包裹的内容被换行.并且也上下内容之间有一行空白. 4 5 : 加粗标签. 6 7
: 为文字加上一条中线. 8 9 : 文字变成斜体.10 11 和: 上角标 和 下角表.12 13 :换行.14 15
:水平线16 17#HTML中没有任何效果是配合 CSS使用的 充起一个盒子方便我们点位和布局18 19
块级标签:<p><h1><table><ol><ul><form><div> #写在一行中的任何位置,都占一行,要写别的类容需要另起一行
内联标签:<a><input><img><sub><sup><textarea><span> #只控制自己文本的长度范围,要写别的类容不需要另起一行
block(块)元素的特点
① 总是在新行上开始;
② 高度,行高以及外边距和内边距都可控制;
③ 宽度缺省是它的容器的100%,除非设定一个宽度。
④ 它可以容纳内联元素和其他块元素
inline元素的特点
① 和其他元素都在一行上;② 高,行高及外边距和内边距不可改变;③ 宽度就是它的文字或图片的宽度,不可改变④ 内联元素只能容纳文本或者其他内联元素对行内元素,需要注意如下 设置宽度width 无效。设置高度height 无效,可以通过line-height来设置。设置margin 只有左右margin有效,上下无效。设置padding 只有左右padding有效,上下则无效。注意元素范围是增大了,但是对元素周围的内容是没影响的。
特殊字符
< ; >;";©®
:
一、<p>标签
p标签用来定义一个段落。
p元素会自动在其前后创建一些空白。浏览器会自动添加这些空间,您也可以在样式表中规定。
二、超链接标签(锚标签) <a>
<a>标签用于定义超链接,从一个页面链接到另一个页面。
属性:
1.href:链接指向页面的URL。
2.target:在何处打开链接。框架名称: 在指定框架中打开连接内容.
- _blank # 在新窗口打开链接
- _parent
- _self
- _top
- framename
3.name:定义一个页面的书签.
规定锚的名称。
用于跳转 href : #书签名称.
锚定 id #号 第二章
id="form"
1 第五章 2 第二章 3 422222第五章#1与4 一起唯一对应
#与id唯一对应的 标签 跳转到什么位置取决于有没有 " # "号 有# :找到当前页面为form标签 用于找标签 无# : 跳转页面路径
三、图形标签
属性:
src:图片路径
alt:图片加载失败时的提示文字
title: 鼠标悬浮时的提示信息
width: 图片的宽
height:图片的高 (宽高两个属性只用一个会自动等比缩放.)
老男孩 第一章第二章第三章第四章第五章 第二章liufei
huafeiwu流氓高手
斗罗大陆
圣墓
楚乔传
黑道教父
uuuuuuuu rrrrrrrrrrrruuuuuuuu
bbbbbbbbbb
doubi骡子骡子
黑刀
G252 < > " © ® 百度22222第五章hello
hello
四、列表标签
- : 无序列表
- :列表中的每一项.
- 定义列表
- 列表标题
- 列表项
- : 有序列表
无序列表示例:
- 咖啡
- 茶
- 牛奶
有序列表示例:
- 咖啡
- 牛奶
- 茶
- aaa
- bbb
- vvv
- ddd
- aaa
- bbb
- vvv
- ddd
- 河北
- 衡水
- 邯郸
- 云南
- 昆明
- 大理
- 重庆
- 重庆
五、表格标签: <table>:
1 border: 表格边框. 2 3 cellpadding: 内边距 4 5 cellspacing: 外边距. 6 7 width: 像素 百分比.(最好通过css来设置长宽) 8 9 : table row10 11 : table head cell12 13 : table data cell14 15 rowspan: 单元格竖跨多少行16 17 colspan: 单元格横跨多少列(即合并单元格)18 19 : table header (不常用): 为表格进行分区.
第一列 | 第二列 | 第三列 |
1,2 | 3,33 | |
11 | 22 |
京东
第一列 | 第二列 | 第三列 |
1,2 | 3 | |
4 | 5 | 6,9 |
7 | 8 |
六 表单标签(django)<form>:
表单用于向服务器传输数据。
表单能够包含 ,比如文本字段、复选框、单选框(互斥标签)、提交按钮等等。
表单还可以包含、select、和 。
1.表单属性
HTML 表单用于接收不同类型的用户输入,用户提交表单时向服务器传输数据,从而实现用户与Web服务器的交互。表单标签, 要提交的所有内容都应该在该标签中.
action: 表单提交到哪. 一般指向服务器端一个程序,程序接收到表单提交过来的数据(即表单元素值)作相应处理,比如https://www.sogou.com/web
form表单的action的 url结尾也需要加/
method: 表单的提交方式 post/get 默认取值 就是 get(信封)
get: 1.提交的键值对.放在地址栏中url后面. 2.安全性相对较差. 3.对提交内容的长度有限制.
post:1.提交的键值对 不在地址栏. 2.安全性相对较高. 3.对提交内容的长度理论上无限制.
get/post是常见的两种请求方式.
提交name的值到百度
2.表单元素
详细解释:
<input> type: text 文本输入框
password 密码输入框
radio 单选框
checkbox 多选框
submit 提交按钮
button 按钮(需要配合js使用.) button和submit的区别?
button-普通按钮,submit-提交按钮;submit按钮一般出现在网页上需要提交信息到服务器是才使用,而button按钮是创建一个按钮,对于实现按钮将会发生什么事这个不一定。
submit和button,二者都以按钮的形式展现,看起来都是按钮,所不同的是type属性和处发响应的事件上,submit会提交表单,button不会提交表单.
两者主要区别在于: submit默认为form提交,可以提交表单(form). button则响应用户自定义的事件,如果不指定onclick等事件处理函数,它是不做任何事情.当然,button也可以完成表单提交的工作.INPUT type=submit 即发送表单,按回车提交表单 INPUT type=button 就是单纯的按钮功能,提交的是innerTEXT更详细的表单元素:
file 提交文件:form表单需要加上属性enctype="multipart/form-data"
def index(request): print request.POST print request.GET print request.FILES for item in request.FILES: fileObj = request.FILES.get(item) f = open(fileObj.name, 'wb') iter_file = fileObj.chunks() for line in iter_file: f.write(line) f.close() return HttpResponse('ok')
name: 表单提交项的键.注意和id属性的区别:name属性是和服务器(服务端)通信时使用的名称;而id属性是浏览器端(前端)使用的名称,该属性主要是为了方便客户端编程,而在css和javascript中使用的。
value: 表单提交项的值.
对于不同的输入类型,value 属性的用法也不同:
type="button", "reset", "submit" - 定义按钮上的显示的文本(按钮上起名字)
type="text", "password", "hidden" - 定义输入字段的初始值(默认值)
type="checkbox", "radio", "image" - 定义与输入相关联的值
篮球
足球
乒乓球
checked: radio 和 checkbox 默认被选中 readonly: 只读. text 和 password disabled: 对所用input都好使.
[注意1]type="checkbox"或"radio"必须设置value属性
[注意2]value属性无法与type="file"的input元素一起使用
<select> 下拉选标签属性:
name:表单提交项的键.
size:选项个数
multiple:multiple
<option> 下拉选中的每一项 属性:value:表单提交项的值. selected: selected下拉选默认被选中
<optgroup>为每一项加上分组
<textarea> 文本域
name:表单提交项的键.
cols:文本域默认有多少列
rows:文本域默认有多少行
<label> #关联文本框 点击文本框外的文字就有光标到文本框
<label for="www">姓名</label> <input id="www" type="text">
<fieldset> 文本框被线圈起来
<fieldset> <legend>登录吧</legend> <input type="text"></fieldset>
本人网
练习的显示
HTML 对比学习类容: