HTML介绍:
web服务的本质就是
浏览器发请求 --> HTTP协议 --> 服务端接收请求 --> 服务端返回响应 --> 服务端把HTML文件内容发给浏览器 --> 浏览器渲染页面;
其实简单的来说就是
1. 浏览器 给服务端 发送了一个消息
2. 服务端拿到消息
3. 服务端返回消息
4. 浏览器展示页面
HTTP协议:浏览器和服务器之间约定好的消息格式,便于接收; 就像 在本地上写的client和sever端是一样的,我知道client发什么,然后sever端就接收什么;同样HTTP协议正是浏览器和sever端之间的传输的一种消息的格式;是浏览器自带的;
import socket
sk= socket.socket()
sk.bind(('127.0.0.1',8080))
sk.listen(5)
while True:
conn,addr = sk.accept()
conn.recv(1024)
#要按照HTTP协议的格式来发消息,这样浏览器才能接收到;
conn.send(b'HTTP/1.1 200 OK
')
with open('data.html','rb') as f: #浏览器传输的数据都是以字节位单位的.
msg = f.read()
conn.send(msg)
conn.close()
HTML是一种用于创建网页的标记语言,不是编程语言,因此HTML语言是没有逻辑性的,只是 使用标签来描述网页。
本质上是浏览器可识别的规则,按照HTML的规则去写网页,则浏览器会渲染我们的网页。
最基本的HTML文档:
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>title</title> </head> <body> </body> </html>
1 <!DOCTYPE html>声明为HTML5文档。
2 <html>、</html>是文档的开始标记和结束的标记。是HTML页面的根元素,在它们之间是文档的头部(head)和主体(body)。
3 <head>、</head>定义了HTML文档的开头部分。它们之间的内容不会在浏览器的文档窗口显示。包含了文档的元(meta)数据。
4 <title>、</title>定义了网页标题,在浏览器标题栏显示。
5 <body>、</body>之间的文本是可见的网页主体内容。
注意:对于中文网页需要使用 <meta charset="utf-8"> 声明编码,否则会出现乱码。有些浏览器会设置 GBK 为默认编码,则你需要设置为 <meta charset="gbk">。
HTML标签的格式:
标签分类:
双标签 <div>和</div>
单标签 <br/>、<hr/>;<img src="1.jpg" />
对应的标签的语法:
- <标签名 属性1=“属性值1” 属性2=“属性值2”……>内容部分</标签名>
- <标签名 属性1=“属性值1” 属性2=“属性值2”…… />
几个很重要的属性:
- id:定义标签的唯一ID,HTML文档树中唯一
- class:为html元素定义一个或多个类名(classname)(CSS样式类名)
- style:规定元素的行内样式(CSS样式)
HTML的注释:
<!-- 注释内容 -->
HTML常用的标签:
head 内常用标签:
标签 | 意义 |
---|---|
<title></title> | 定义网页标题 |
<style></style> | 定义内部样式表 |
<script></script> | 定义JS代码或引入外部JS文件 |
<link/> | 引入外部样式表文件 |
<meta/> | 定义网页原信息 |
Meta 标签
<!--2秒后跳转到对应的网址,注意引号--> <meta http-equiv="refresh" content="2;URL=https://www.oldboyedu.com"> <!--指定文档的编码类型--> <meta http-equiv="content-Type" charset=UTF8"> #通常http-equiv="content-Type"不写
name属性:主要用于描述网页,主要是为了爬虫,查找消息和分类消息用的
<meta name="keywords" content="meta总结,html meta,meta属性,meta跳转"> <meta name="description" content="老男孩教育Python学院">
head 内常用标签:
<b>加粗</b>
<i>斜体</i>
<u>下划线</u>
<s>删除</s>
<p>段落标签</p>
<h1>标题1</h1>
<h2>标题2</h2>
<h3>标题3</h3>
<h4>标题4</h4>
<h5>标题5</h5>
<h6>标题6</h6>
<!--换行-->
<br>
<!--水平线--><hr>
特殊字符:
内容 | 对应代码 |
---|---|
空格 | |
> | > |
< | < |
& | & |
¥ | ¥ |
版权 | © |
注册 | ® |
<!DOCTYPE html>
<!--zh-CN中文-->
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>第一个html</title>
</head>
<body>
<!-- h1标签就是字体变大和加粗,数字越小越大-->
<!--img标签里面的src= 为图片的地址; alt= 是当图片加载不出来后给用户的一个反馈 ,
title= 是当移动到图片的时候出现的文字-->
<h1>©为小米 而生</h1>
<p>小米是谁,是你你你</p>
<p>小米是谁,是你你你</p>
<!--无序的列表-->
<div>
<ul type="none">
<li>a</li>
<li>b</li>
<li>c</li>
</ul>
</div>
<!--有序的列表-->
<ol type="I" start="1">
<li>
<a href="">1</a>
</li>
<li>2</li>
</ol>
<!--表格-->
<table border>
<thead>
<tr>
<th> name </th>
<th> age </th>
<th> sex </th>
</tr>
</thead>
<tbody>
<tr>
<td> zh </td>
<td> 23 </td>
<td> men </td>
</tr>
</tbody>
</table>
<!--<img src="https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=3737863257,3043102048&fm=26&gp=0.jpg" alt="德莱文"-->
<!--title="德莱文">-->
<!--a标签里面的 href=是相当于链接,后面起名字来表示此链接,target="_blank",表示 链接 在新的窗口来弹出,
target="_self"表示 本网页 跳转到 链接 -->
<a href="https://www.baidu.com" target="_self">百度</a>
</body>
</html>
<!--h1*5>a>i{a$}-->
<!--<h1><a href=""><i>a1</i></a></h1>-->
<!--<h1><a href=""><i>a2</i></a></h1>-->
<!--<h1><a href=""><i>a3</i></a></h1>-->
<!--<h1><a href=""><i>a4</i></a></h1>-->
<!--<h1><a href=""><i>a5</i></a></h1>-->
<!--h1*4>a.c1[id=a$]{a标签$}-->
<!--<h1><a href="" class="c1" id="a1">a标签1</a></h1>-->
<!--<h1><a href="" class="c1" id="a2">a标签2</a></h1>-->
<!--<h1><a href="" class="c1" id="a3">a标签3</a></h1>-->
<!--<h1><a href="" class="c1" id="a4">a标签4</a></h1>-->
列表:
1.无序列表中的type属性:
- disc(实心圆点,默认值)
- circle(空心圆圈)
- square(实心方块)
- none(无样式)
2.有序列表中的type属性:
- 1 数字列表,默认值
- A 大写字母
- a 小写字母
- Ⅰ大写罗马
- ⅰ小写罗马
3.标题列表
<dl> <dt>标题1</dt> <dd>内容1</dd> <dt>标题2</dt> <dd>内容1</dd> <dd>内容2</dd> </dl>
表格的属性:
- border: 表格边框.
- cellpadding: 内边距
- cellspacing: 外边距.
- 像素 百分比.(最好通过css来设置长宽)
- rowspan: 单元格竖跨多少行
- colspan: 单元格横跨多少列(即合并单元格)
标签分类:
1.块儿级标签 h1~h6 div p hr li ;默认占浏览器宽度,能设置长和宽
2.内联标签(行内标签) a img u s i b span;根据内容决定长度,不能设置长和宽
标签的嵌套规则
1. 行内标签不能嵌套块级标签
2. p标签不能嵌套块级标签
Form 表单
功能:
表单 用于向服务器传输数据(method = POST),从而实现用户与Web服务器的交互
表单如下几个标签:
input系列;textarea(大端文本); select(下拉框); label 标签 等;
表单的属性
属性 | 描述 |
---|---|
accept-charset | 规定在被提交表单中使用的字符集(默认:页面字符集)。 |
action | 规定向何处提交表单的地址(URL)(提交页面)。 |
autocomplete | 规定浏览器应该自动完成表单(默认:开启)。 |
enctype | 规定被提交数据的编码(默认:url-encoded)。 |
method | 规定在提交表单时所用的 HTTP 方法(默认:GET)。 |
name | 规定识别表单的名称(对于 DOM 使用:document.forms.name)。 |
novalidate | 规定浏览器不验证表单。 |
target | 规定 action 属性中地址的目标(默认:_self)。 |
input标签系列
text | 单行输入文本 | <input type=text" /> |
password | 密码输入框 | <input type="password" /> |
date | 日期输入框 | <input type="date" /> |
checkbox | 复选框 | <input type="checkbox" checked="checked" /> |
radio | 单选框 | <input type="radio" /> |
submit | 提交按钮 | <input type="submit" value="提交" /> |
reset | 重置按钮 | <input type="reset" value="重置" /> |
button | 普通按钮 | <input type="button" value="普通按钮" /> |
hidden | 隐藏输入框 | <input type="hidden" /> |
file | 文本选择框 | <input type="file |
属性说明:
- name:表单提交给后端时的“键”;
- value:表单提交时对应项的值
- type="button", "reset", "submit"时,为按钮上显示的文本年内容
- type="text","password","hidden"时,为输入框的初始值
- type="checkbox", "radio", "file",为输入相关联的值
- checked:radio和checkbox默认被选中的项
- readonly:text和password设置只读
- disabled:所有input均适用;不可以修改
select标签
<p> <!--select只是下滑的菜单;option 具体的下拉选项;optgroup 分组的下拉框;
selected为默认的选择; multiple,布尔属性,设置后为多选,否则默认为单选--> <label for="palce">地点</label> <select name="home" id="palce" multiple="multiple"> <optgroup label="北京"> <option value="cp">昌平</option> <option value="hd">海淀</option> <option value="cy">朝阳</option> </optgroup> <option selected value="sh">上海</option> <option value="sc">四川</option> </select> </p>
属性说明:
- multiple:布尔属性,设置后为多选,否则默认单选
- disabled:禁用
- selected:默认选中该项
- value:定义提交时的选项值
label标签
<p> 性别 <label for="li">男</label> <input id="li" name="sex" type="radio" value="0"> <label for="lr">女</label> <input id="lr" name="sex" type="radio" value="1"> <label for="la">保密</label> <input checked id="la" name="sex" type="radio" value="2"> </p>
- label 元素不会向用户呈现任何特殊效果。
- <label> 标签的 for 属性值应当与相关元素的 id 属性值相同。
- <label> 标签为 input 元素定义标注(标记)。
textarea多行文本
<p> <!--textarea 多行文本,为双标签--> <label for="info">个人介绍</label> <textarea name="user_info" id="info" cols="30" rows="10"></textarea> </p>
属性说明:
- name:名称
- rows:行数
- cols:列数
- disabled:禁用
下面是常用标签的一个合集:
<!--所有获取用户输入的标签都必须放在form表单里面,action 是 向哪个 地址提交表单的信息--> <!--GET - 从指定的资源 请求 数据。 POST - 向指定的资源 提交 要被处理的数据--> <form action="http://127.0.0.1:8000/upload/" method="post"> <p> <label for="user">用户名</label> <!--加name是为了让服务器来到键值对的数据;value为默认值;disabled不可修改;placeholder 设置占位内容;readonly 为只读不能修改--> <input id="user" name="username" type="text" value="aaa" readonly> <!--hidden隐藏输入框,就类似为了把数据放入数据库的里面的ID值(主键)不能被用户随便的去修改--> <input type="hidden" value="01"> </p> <p> <label for="password">密码</label> <input id="password" name="password" type="password"> </p> <p> 性别 <label for="li">男</label> <input id="li" name="sex" type="radio" value="0"> <label for="lr">女</label> <input id="lr" name="sex" type="radio" value="1"> <label for="la">保密</label> <input checked id="la" name="sex" type="radio" value="2"> </p> <p> 爱好 <label for="aa">篮球</label> <input id="aa" name="hobby" type="checkbox" value="basketball"> <label for="ab">排球</label> <input checked id="ab" name="hobby" type="checkbox" value="football"> </p> <p> <label for="time">生日</label> <input id="time" type="date" name="brithday"> </p> <p> <!--textarea 多行文本,为双标签--> <label for="info">个人介绍</label> <textarea name="user_info" id="info" cols="30" rows="10"></textarea> </p> <p> <!--select只是下滑的菜单;option 具体的下拉选项;optgroup 分组的下拉框; selected为默认的选择 multiple,布尔属性,设置后为多选,否则默认为单选--> <label for="palce">地点</label> <select name="home" id="palce" multiple="multiple"> <optgroup label="北京"> <option value="cp">昌平</option> <option value="hd">海淀</option> <option value="cy">朝阳</option> </optgroup> <option selected value="sh">上海</option> <option value="sc">四川</option> </select> </p> <p> <!--file为文本选择框,可以选择图片--> <input type="file" value="photo"> </p> <p> <!--button为普通的按钮;reset为重置按钮--> <input type="submit" value="GO"> <input type="button" value="..."> <input type="reset" value="delet"> </p> </form>