HTML

     

翻译成代码如下:

import socket
def handle_request(client):
    buf = client.recv(1024)
    client.sendall(bytes("HTTP/1.1 201 OK\r\n\r\n","utf8"))

    client.sendall(bytes("<h1>Hello, World</h1>","utf8"))  #传送一个html给客户端

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()
web:

因为按照直接在代码中编写html,并发送给客户端会增加代码块的复杂度,所以就生成了html文档,需要html页面时,我们只需要直接找到相应的html文档,读取内容然后再传给客户端就行

html css 以及js的关系

 

他们的关系就如同皮影戏:

html:用来决定页面上的内容。 就如同皮影戏图像

css:决定页面上内容的格式,颜色,位子 ,就如同皮影戏的图像的作色

js:就是做动态页面的。就如同:皮影戏的运动

HTML 是什么?

htyper text markup language  即超文本标记语言

超文本: 就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。

标记语言: 标记(标签)构成的语言.

 

网页==HTML文档,由浏览器解析,用来展示的

静态网页:静态的资源,如xxx.html

动态网页:html代码是由某种开发语言根据用户请求动态生成的

html文档树形结构图

 

什么是标签:

  • 是由一对尖括号包裹的单词构成 例如: <html> *所有标签中的单词不可能以数字开头.
  • 标签不区分大小写.<html> 和 <HTML>. 推荐使用小写.
  • 标签分为两部分: 开始标签<a> 和 结束标签</a>. 两个标签之间的部分 我们叫做标签体.
  • 有些标签功能比较简单.使用一个标签即可.这种标签叫做自闭和标签.例如: <br/> <hr/> <input /> <img />
  • 标签可以嵌套.但是不能交叉嵌套. <a><b></a></b>

标签的属性:

  • 通常是以键值对形式出现的. 例如 name="alex"
  • 属性只能出现在开始标签 或 自闭和标签中.
  • 属性名字全部小写. *属性值必须使用双引号或单引号包裹 例如 name="alex"
  • 如果属性值和属性名完全一样.直接写属性名即可. 例如 readonly
<!DOCTYPE html>标签
为了定义该网站html遵守W3C标准。如果没有该标签,表示是非标准网页

head标签:

  • <meta>meta标签的组成:meta标签共有两个属性,它们分别是http-equiv属性和name 属性,不同的属性又有不同的参数值,这些不同的参数值就实现了不同的网页 功能。

1 name属性主要用于描述网页,与之对应的属性值为content,content中的内容 主要是便于搜索引擎机器人查找信息和分类信息用的。

  • <meta name="keywords"content="meta总结,html meta,meta属性,meta跳转"> 

  作用:  name="keywords",表示定义关键字,content里面是关键字。

     在浏览器上(如:百度)直接搜索关键字就能搜到该网站,就是因为这个标签

  •      <meta name="description"content="老男孩培训机构是由一个老的男孩创建的">

   作用:name="description" 表示定义的描述 content里面是描述语

      当我们在百度搜到某个网站时,会看见有相应的描述语。

实例:

 

 

 

 

 

 

 

 

 

 

搜索的"京东"二字,就来自于关键字的定义;京东官网栏,里面的小字介绍就来自与描述

2 http-equiv顾名思义,相当于http的文件头作用,它可以向浏览器传回一些有 用的信息,以帮助正确和精确地显示网页内容,与之对应的属性值为content, content      中的内容其实就是各个参数的变量值。

  •  <meta http-equiv="Refresh"content="2;URL=https://www.baidu.com"> //(注意后面的引号,分别在秒数的前面和网址的后面)

作用:refresh:刷新的意思。内容里面表示:2s后刷新页面进入百度网页。如果没有URL地址,代表每2s刷新一次该网页

  •     <meta http-equiv="content-Type"content="text/html;charset=UTF8">

作用:定义编码格式

  •     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

    作用:以上代码IE=edge告诉IE使用最新的引擎渲染网页,chrome=1则可以激活Chrome Frame.  就是为了兼容

3 <title>标签

  • <title>老男孩</title>

    作用:定义网页标题

4 <link rel="icon" href="http://www.jd.com/favicon.ico">

作用:定义网页标题旁边的图标

body标签: 

标签大致分为两大块:

  • 块级标签:独占一行,对它的渲染,将直接渲染整个一行
  • 内联标签:只占据自己字符的长度;对它的渲染,只渲染它字符的长度。

块级标签:<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有效,上下则无效。注意元素范围是增大了,但是对元素周围的内容是没影响的。

一 基本标签

<hn>: n的取值范围是1~6; 从大到小. 用来表示标题.

<p>: 段落标签. 包裹的内容被换行.并且也上下内容之间有一行空白.

<b> <strong>: 加粗标签.

<strike>: 为文字加上一条中线.

<em>: 文字变成斜体.

<sup>和<sub>: 上角标 和 下角标.

<br>:换行. 自闭合标签

<hr>:水平线  自闭合标签

 <div><span>

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body style="background:green">
 8     <h1>hello</h1>              <!--定义了标题-->
 9     <div style="background:#000;color:#FFF"> <!--从10到17行的内容在一个块里,如果给div进行渲染,那么里面的所有行都会跟着被渲染-->
10                                  <!--style:是html自带的渲染参数,可以定义:颜色,字体大小,等等。在以后我们将使用css来代替它-->
11         <p><b>第一章  第一章</b></p> <!--<p>标签定义了这是一个段落标签。<b>将文本内容给加粗。-->
12                                        <!--注意:在标签文本里,不管有多少个空格,最后都会被处理为一个空格。想实现多个空格,只能使用特殊字符来表示空格-->
13         <a>aaaaa</a>   <!--<a>表示的是超链接标签,见<本页第三点>。 注意:因为<a>标签是内联标签,所以不管<a>标签写多少个,都会在一行。-->
14         <a><em>aaaaa</em></a> <!--<a>标签的内容和上面的内容在一行   <em>是对文本内容加斜体-->
15         <a><br>bbbbbbb</a>    <!--<br>标签实现了换行  注意:它是自闭合标签-->
16         <hr>                  <!--横线 注意:他是自闭合标签-->
17         <p>第二章</p>
18         <a>y=x<sup>2</sup>+C<sub>1</sub></a>y<sup>2</sup>   <!--sup是上角标, sub是下角标-->
19     </div>
20 </body>
21 </html>

执行结果:

特殊字符:<其他的可以在网上搜:html特殊字符><注:特殊后面的分号是标签的一部分>

      &lt;    &gt;   &quot;   &copy;     &reg;

二 图形标签: <img> : 自闭合标签

src: 要显示图片的路径.

alt: 图片没有加载成功时的提示.

title: 鼠标悬浮时的提示信息.

width: 图片的宽

height:图片的高 (宽高两个属性只用一个会自动等比缩放.)

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body style="background:green">
 8 <img src="http://img20.360buyimg.com/da/jfs/t6547/112/1643232560/138601/8bfac6b0/5954a46bNde50c04d.jpg"  
 9      width="300px" height="280px" title="京东">
10 <img  src="1.png" alt="加载失败">
11 </body>
12 </html>

执行结果:

 

 

 

 

 

 

 

 

 

 

 

三 超链接标签(锚标签)<a>:

href:要连接的资源路径 格式如下: href="http://www.baidu.com" 

target: _blank : 在新的窗口打开超链接.

name: 定义一个页面的书签。用于跳转 href : #书签名称.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body style="background:green">
    <h4>第一章</h4>
    <h4><a href="#aaa" target="_blank">第二章</a></h4>  <!--href定义的是跳转到一个书签名称上,主要用于定义文章内容,比如:在目录点击某一章节就能跳到某章节-->
    <div>
        <h5>第一章</h5>
        <a>内容</a>
        <a href="https://www.baidu.com/" target="_blank" name="bbb">百度一下</a> <!--name是用来给这行标签定义一个名字-->
    </div>
    <h5><a target="_blank" name="aaa">第二章</a></h5>
     <a href="#bbb">再百度一下</a> <!--此处连接地址写某个标签的名字,就意味着定义了一个链接。点击此处就可以跳转到别的位置上-->
</body>
</html>

执行结果:

 四 列表标签:

<ul>: 无序列表

<ol>:有序列表

         <li>:列表中的每一项.

<dl> 定义列表

         <dt> 列表标题

         <dd> 列表项

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body style="background:green">
 8     <ul>
 9         <li>河南</li>
10         <li>河北</li>
11     </ul>
12     <ol>
13         <li>龙泉</li>
14         <li>温江</li>
15 
16     </ol>
17     <dl>
18         <dt>成都</dt>
19         <dd>天府</dd>
20     </dl>
21 </body>
22 </html>

执行结果:

五 表格标签: <table>:

<tr>: table row

         <th>: table head cell

         <td>: table data cell

border: 表格边框 ,用来决定边框是否存在

cellpadding: 内边距  ,内边框的大小

cellspacing: 外边距   ,外边框的大小

width: 像素 百分比.(最好通过css来设置长宽)

rowspan: 单元格竖跨多少行  (即竖向合并单元格)

colspan:  单元格横跨多少列(即合并单元格)

<th>: table header <tbody>(不常用): 为表格进行分区

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body style="background:green">
 8 <table border="_bank" cellspacing="15px">
 9     <tr>
10         <th>第一列</th>
11         <th>第二列</th>
12         <th>第三列</th>
13     </tr>
14      <tr>
15         <td>1</td>
16          <td>2</td>
17     </tr>
18      <tr>
19         <td>4</td>
20          <td>5</td>
21          <td rowspan="2">6,3</td>  <!--因为上面那一行,少了一个元素,因此在合并的时候,就会知道该行要去和上一行的元素合并-->
22     </tr>
23 </table>
24 </body>
25 </html>

执行结果:

六 表单标签(django)<form>:

      表单用于向服务器传输数据。

      表单能够包含 input 元素,比如文本字段、复选框、单选框、提交按钮等等。

      表单还可以包含textarea、select、fieldset和 label 元素

1.表单属性

  HTML 表单用于接收不同类型的用户输入,用户提交表单时向服务器传输数据,从而实现用户与Web服务器的交互。表单标签, 要提交的所有内容都应该在该标签中.

action: 表单提交到哪. 一般指向服务器端一个程序,程序接收到表单提交过来的数据(即表单元素值)作相应处理,比如https://www.sogou.com/web

        method: 表单的提交方式 post/get    默认取值get(信封)

                          get: 1.提交的键值对.放在地址栏中url后面. 2.安全性相对较差. 3.对提交内容的长度有限制.

                          post:1.提交的键值对 不在地址栏. 2.安全性相对较高. 3.对提交内容的长度理论上无限制. 推荐

                          get/post是常见的两种请求方式.

在讲表单元素前,我们首先来看看京东,当我们在京东主页,搜索栏里输入“风扇”并提交,会发现网址将由:“https://www.jd.com/”变为”https://search.jd.com/Search?keyword=风扇”。是不是很惊奇的发现。风扇竟然出现在了网址中,其实这就是因为表单提交方式是get。所以那么提交内容就会显示在url地址中。同时我们也会发现提交时居然是“keyword=风扇”。这是因为html提交的时候是以键值对(字典)的形式提交的。那么键和值又是由什么决定的?

答案:表单元素中的name 表示的就是键。值就是value来代表的。

2.表单元素

    a. <input>     type: text 文本输入框

                     password 密码输入框

                     radio 单选框

                     checkbox 多选框  

                     submit 提交按钮            

                     button 按钮(需要配合js使用.) button和submit的区别?button仅仅是触发某个事件,如点击某个按钮就弹出来某个图片。submit主要是用来向后台提交数据

                     file 提交文件:form表单需要加上属性enctype="multipart/form-data"   

                 name: 表单提交项的键.注意和id属性的区别:name属性是和服务器通信时使用的名称;而id属性是浏览器端使用的名称,该属性主要是为了方便客户端编程,而在css和javascript中使用的。

                 value: 表单提交项的值.

                             对于不同的输入类型,value 属性的用法也不同:

           1.type="button", "reset", "submit" - 定义按钮上的显示的文本

           2.type="text", "password", "hidden" - 定义输入字段的初始值

           3.type="checkbox", "radio", "image" - 定义与输入相关联的值

                             4.checked: radio 和 checkbox 默认被选中

                  readonly: 只读. text 和 password

                  disabled: 对所用input都好使.

  b.<select> 下拉选标签属性:

                   name:表单提交项的键.

                   size:选项个数

                   multiple:multiple 

                 <option> 下拉选中的每一项 属性:value:表单提交项的值.   selected: selected下拉选默认被选中

                 <optgroup>为每一项加上分组

  c.<textarea> 文本域 name:表单提交项的键. cols:文本域默认有多少列 rows:文本域默认有多少行

  d.<label>:(仅了解)(效果同input)

         <label for="www">姓名</label>
         <input id="www" type="text">

  e.<fieldset>:(仅了解)(效果同input)

    <fieldset>
          <legend>登录吧</legend>
          <input type="text">
    </fieldset>

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body style="background:green">
 8 <form action="127.0.0.1:8080" method="post" enctype="multipart/form-data" >
 9     用户名<input type="text" name="username"><br>  #name是键,值由手动输入
10     密码<input type="password" name="pwd"><br>
11<input type="radio" name="sex" value="1">   #给整个单选项起同一个name。保证了不管选谁,键都有值。给各个选项。
12<input type="radio" name="sex" value="2" checked><br> #因value是赋值了的。所以在传值的时候将会使用2来代替她的真实信息。在后台我们只需对应解析就行
13     篮球<input type="checkbox" name="hobby" value="1">
14     足球<input type="checkbox" name="hobby" value="2">
15     网球<input type="checkbox" name="hobby" value="3"><br>
16     请上传文件<input type="file" name="file"><br>
17     备注<textarea name="log"></textarea><br>
18     <select name="where">
19         <optgroup label="河北省">
20             <option value="1">唐山</option>
21             <option value="2" selected>天津</option>
22         </optgroup>
23     </select><br>
24     提交<input type="submit">
25 </form>
26 </body>
27 </html>

执行结果:

 

posted on 2017-06-30 16:44  进_进  阅读(184)  评论(0编辑  收藏  举报