【python】-- web开发之HTML

HTML

HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,是一种制作万维网页面标准语言(标记)。通俗的讲就是相当于定义统一的一套规则,大家都来遵守他,这样就可以让浏览器根据标记语言的规则去解释它。

浏览器负责将标签翻译成用户“看得懂”的格式,呈现给用户!(例:djangomoan模版引擎)

一、初识HTML 

1、简单HTML实例:

<!DOCTYPE html> <!--规范 声明文档类型为:html-->
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>初识HTML</title>
</head>
<body>
    <h1>第一个标题</h1>
    <p>第一个段落!</p>
</body>
</html>

2、标签解析:

  • <!DOCTYPE html> 声明文档类型为:HTML类型  (更多声明方式:点击
  • <html> 元素是 HTML 页面的根元素 
  • <head> 元素包含了文档的元(meta)数据 
  • <title> 元素描述了文档的标题 
  • <body> 元素包含了可见的页面内容
  • <h1> 元素定义一个大标题
  • <p> 元素定义一个段落
  • <!--注释--> 可对标签做相应注释

3、HTML特点:

  1. HTML 标签是由尖括号包围的关键词,比如 <html>
  2. HTML 标签通常是成对出现的,比如 <b> 和 </b>
  3. 标签对中的第一个标签是开始标签,第二个标签是结束标签(也被称为开放标签闭合标签
  4. 标签分类:自闭合标签<meta charset="UTF-8">、主动闭合标签<title>初识HTML</title>

 

 

二、HTML head标签

1、Meta(metadata information)

提供有关页面的元信息,例:页面编码、刷新、跳转、针对搜索引擎和更新频度的描述和关键词

1.1、页面编码(告诉浏览器是什么编码)

< meta http-equiv=“content-type” content=“text/html;charset=utf-8”>

1.2、刷新(等待content内的时间之后进行页面刷新)

< meta http-equiv=“Refresh” Content=“30″>

1.3、跳转(等待content内的时间之后进行页面跳转)

< meta http-equiv=”Refresh“ Content=”5; Url=http://www.baidu.com“ />

1.4、关键词

<meta name="keywords" content="HTML 简介">

1.5、描述

<meta name="description" content="HTML 简介  HTML 实例">

1.6、X-UA-Compatible

微软的IE6是通过XP、Win2003等操作系统发布出来,作为占统治地位的桌面操作系统,也使得IE占据了通知地位,许多的网 站开发的时候,就按照IE6的标准去开发,而IE6自身的标准也是微软公司内部定义的。到了IE7出来的时候,采用了微软公司内部标准以及部分W3C的标 准,这个时候许多网站升级到IE7的时候,就比较痛苦,很多代码必须调整后,才能够正常的运行。而到了微软的IE8这个版本,基本上把微软内部自己定义的 标准抛弃了,而全面的支持W3C的标准,由于基于对标准彻底的变化了,使得原先在早期IE8版本上能够访问的网站,在IE8中无法正常的访问,会出现一些 排版错乱、文字重叠,显示不全等各种兼容性错误。

与任何早期浏览器版本相比,Internet Explorer 8 对行业标准提供了更加紧密的支持。 因此,针对旧版本的浏览器设计的站点可能不会按预期显示。 为了帮助减轻任何问题,Internet Explorer 8 引入了文档兼容性的概念,从而允许您指定站点所支持的 Internet Explorer 版本。 文档兼容性在 Internet Explorer 8 中添加了新的模式;这些模式将告诉浏览器如何解释和呈现网站。 如果您的站点在 Internet Explorer 8 中无法正确显示,则可以更新该站点以支持最新的 Web 标准(首选方式),也可以强制 Internet Explorer 8 按照在旧版本的浏览器中查看站点的方式来显示内容。 通过使用 meta 元素将 X-UA-Compatible 标头添加到网页中,可以实现这一点。

当 Internet Explorer 8 遇到未包含 X-UA-Compatible 标头的网页时,它将使用 指令来确定如何显示该网页。 如果该指令丢失或未指定基于标准的文档类型,则 Internet Explorer 8 将以 IE5 模式(Quirks 模式)显示该网页。更多

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />

  

2、Title

网页头部信息

<title>初识HTML</title>

 

3、Link

3.1、CSS 加载css样式文件

<head>
    <meta charset="UTF-8">
    <title>初识HTML</title>
    <link rel="stylesheet" type="text/css" href="css/common.css"> <!--加载css样式文件-->
</head>

3.2、在标题前加图标(添加的图片的位置image文件夹要跟index.html在同一层目录)

<head>
    <meta charset="UTF-8">
    <title>初识HTML</title>
    <link rel="shortcut icon" href="image/favicon.ico"> 
</head>

  

4、Style

在页面中写样式

<head>
    <meta charset="UTF-8">
    <title>初识HTML</title>
    <style type="text/css">   #定义css样式
        .bb{
            background: red;  #定义背景色为红色
        }
    </style>
</head>

 

5、Script

5.1、引进文件

< script type="text/javascript"src="http://www.googletagservices.com/tag/js/gpt.js"> </script >

5.2、写js代码

< script type="text/javascript" > ... </script >

 

 

三、HTML body标签

1、各种符号

更多符号:点击

2、p标签、br标签、h标签、div标签、span标签

<!DOCTYPE html> <!--规范 声明文档类型为:html-->
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>初识HTML</title>
</head>
<body>
    <p>段落1</p>  <!--段落 + 换行-->
    <p>段落2</p>
    <p>段落3</p>
    <p>段<br />落4</p>
    <h1>第一个标题</h1><!-- 标题-->
    <h2>第一个标题</h2>
    <h3>第一个标题</h3>
    <h4>第一个标题</h4>
    <h5>第一个标题</h5>
    <h6>第一个标题</h6>
    <div></div> <!--div白板标签(块级标签)-->
    <div>hello</div>
    <span>hello word</span><!--白板标签 (行内标签)-->
    <div>                 <!-- 标签嵌套 -->
        <p>hell word</p>
        <span>hello word</span>
    </div>
</body>
</html>

注:

  1. p标签表示段落,默认段落之之间是有间隔的
  2. br标签表示换行(br标签是自闭合标签,可以直接写<br>,也可以写成<br />,最好写成后者)
  3. h标为签标题标签,h1~h6,字体大小和粗细从大到小
  4. div为白板标签(以后最常用标签)

span为白板标签

上面标签分为:

  1. 块级标签: div(白板),h系列(加大加粗),p标签(段落和段落之间有间距)
  2. 行内标签: span(白板)

 

3、form标签、input标签、textarea标签、select标签

模拟后台的python代码:

import tornado.ioloop  # pip3 install tornado
import tornado.web


class MainHandler(tornado.web.RequestHandler):
    def get(self):
        print(111)
        self.write("hello")
        # u = self.get_argument('user')
        # e = self.get_argument('email')
        # p = self.get_argument('pwd')
        # if u == 'abc' and p == '123' and e == 'abc@163.com':
        #     self.write("OK")
        # else:
        #     self.write("fuck")

    def post(self, *args, **kwargs):
        u = self.get_argument('user', None)
        e = self.get_argument('email', None)
        p = self.get_argument('pwd', None)
        print(u, e, p)
        self.write('POST')


application = tornado.web.Application([
    (r"/index", MainHandler),
])
if __name__ == "__main__":
    application.listen(8888)
    tornado.ioloop.IOLoop.instance().start()
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <div>
        <form action="http://localhost:8888/index" method="GET"> <!--表单-->
        <input type="text" name="user" />          <!--单行文本输入-->
        <input type="password" name="pwd" />
        <input type="button" value="login_1" />
        <input type="submit" value="login_2" />
        </form>
    </div>
    <p>———————————————————分割线———————————————————</p>
    <form enctype="multipart/form-data">
        <div>
            <textarea name="meno" >asdfasdf</textarea><!--多行文本输入-->


            <select name="city" size="2" multiple="multiple"> <!--下拉框,option的内容为选项内容-->
                <option value="1">北京</option>
                <option value="2">上海</option>
                <option value="3" selected="selected">南京</option>
                <option value="4">成都</option>
            </select>
            <div>

            <select name="Province">
                <optgroup label="江苏省">  <!--分组-->
                    <option value="1" selected="selected">南京</option>
                </optgroup>
                <optgroup label="浙江省">
                    <option value="2">杭州</option>
                </optgroup>
            </select>

            <input type="text" name="user" />
            <p>请选择性别:</p>
            男:<input type="radio" name="gender" value="1"  />
            女:<input type="radio" name="gender" value="2" checked="checked"/>
            Alex:<input type="radio" name="gender" value="3"/>
            <p>爱好</p>
            篮球:<input type="checkbox" name="favor"  value="1" />
            足球:<input type="checkbox" name="favor"  value="2" checked="checked" />
            皮球:<input type="checkbox" name="favor"  value="3" />
            台球:<input type="checkbox" name="favor"  value="4" checked="checked"/>
            网球:<input type="checkbox" name="favor"  value="5" />
            <p>技能</p>
            上天:<input type="checkbox" name="skill" checked="checked" />
            写代码:<input type="checkbox" name="skill"/>
            <p>上传文件</p>
            <input type="file" name="fname"/>
        </div>
        <input type="submit" value="提交" />
        <input type="reset" value="重置" />
    </form>
</body>
</html>

 注:

1、form标签为表单提交 :

  • action属性:指定提交表单数据至哪个url,
  •  method属性:提交的表单用到的方法, 如POST和GET(post方法请求的参数是在body中,而get方法的请求参数是在head中),默认get方法
  • enctype属性 是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据

2、input标签为获取单行文本输入(自闭合标签):

  • type属性:1、text:文本类型,2、password:密码类型,3、button:按钮类型,4、submit:提交类型,5、radio:单选按钮类型(name相同则互斥)6、checkbox:多选框类型(批量获取数据),7、file:上传文件(name定义文件名),8、reset:重置(清空)
  • name属性,value属性:后台可根据这两个属性区分input输入框
  • checked属性:默认已勾选(用于type类型为radio、checkbox)

3、textarea标签为多行文本输入 向后台提交时,会用到name属性

4、select标签为下拉框

  • name属性:名称
  • size属性:设置展示下拉框中的多少个值
  • muitiple属性:设置后下拉框中的值可多选(多选需要按住ctrl)
  • <option>标签:为下拉框中的选项,value属性用于提交后台后区分选项, selected属性用于设置默认已勾选功能

 

 

4、a标签

 4.1、跳转(当前窗口跳转)

<body>
    <a href="http://www.baidu.com">百度一下</a>
</body>

 添加target属性后打开新的窗口跳转

<body>
    <a href="http://www.baidu.com" target="_blank">百度一下</a>  <!--添加target="_blank",在新的tag的页面跳转-->
</body>

4.2、锚

设置锚点后,跳转至对应标签

<body>
    <a href="#i1">第一章</a><!--锚点为id为i1的div标签-->
    <a href="#i2">第二章</a>
    <a href="#i3">第三章</a>
    <div id="i1" style="height: 600px;">第一章的内容</div> <!--id要唯一-->
    <div id="i2" style="height: 600px;">第二章的内容</div> 
    <div id="i3" style="height: 600px;">第三章的内容</div>
</body> 

  

5、img标签、ul标签、ol标签、dl标签

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <a href="http://www.QQ.com"> <!--将img标签写入a标签内,点击图片会跳转之a标签内指定的url-->
        <!--src:图片的文件路径
            title:图片标题,鼠标光标移至图片上展示的标题
            style:设置高宽属性值像素
            alt: 图片加载失败后显示的值-->
        <img src="1.jpg" title="汽车" style="height: 200px;width: 200px;" alt="汽车"><!--IE浏览器导入后img后会蓝色边框(border默认为1px),通过CSS将border设置成为0即可-->
    </a>

    <ul><!--无序列表是一个项目的列表,此列项目使用粗体圆点(典型的小黑圆圈)进行标记-->
        <li>hello</li>
        <li>hello</li>
        <li>hello</li>
        <li>hello</li>
    </ul>

    <ol><!--有序列表也是一列项目,列表项目使用数字进行标记-->
        <li>hello</li>
        <li>hello</li>
        <li>hello</li>
        <li>hello</li>
    </ol>

    <dl><!--自定义一个列表   配合着dt=>defintion title(定义标题)和dd=>defintion description(描述)两个标签配合使用-->
        <dt>江苏</dt>
        <dd>盐城</dd>
        <dd>苏州</dd>
        <dd>南通</dd>
    </dl>
</body>
</html>

 

6、table 标签

table标签应该有thead和tbody内容组成,用于设计表格的

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<table border="1"> <!--border属性显示边框-->
    <thead>
    <tr><!--tr是一行,td是一行中的一列,th是标题列,可以等同于td-->
        <th>主机名</th>
        <th>端口号</th>
        <th>操作</th>
    </tr>
    </thead>
    <tbody>
    <tr>
        <td>1.1.1.1</td>
        <td>8080</td>
        <td>
            <a href="h1.html">查看详情</a> <!--超链接可以是具体的某个页面-->
        </td>
    </tr>
    <!--列合并-->
    <tr>
        <td>1.1.1.1</td>
        <td colspan="2">8080</td> <!--colspan='2'表示这个td占2个列-->
    </tr>

    <!--行合并-->
    <tr>
        <td rowspan="2">1.1.1.1</td>  <!--rowspan='2'表示td上下横跨两个行-->
        <td>8080</td>
        <td>查看详情</td>
    </tr>
    <tr>
        <!--<td>1.1.1.1</td>-->  #这一行需要去掉
        <td>8080</td>
        <td>查看详情</td>
    </tr>
    </tbody>
</table>

</body>
</html>

 

7、fieldset标签、label标签

 7.1、fieldset标签,当一组表单元素放到 <fieldset> 标签内时,浏览器会以特殊方式来显示它们,它们可能有特殊的边界、3D 效果,或者甚至可创建一个子表单来处理这些元素。

<form>
  <fieldset>
    <legend>health information</legend>
    height: <input type="text" />
    weight: <input type="text" />
  </fieldset>
</form>

7.2、label标签,label 元素不会向用户呈现任何特殊效果。不过,它为鼠标用户改进了可用性。如果您在 label 元素内点击文本,就会触发此控件。就是说,当用户选择该标签时,浏览器就会自动将焦点转到和标签相关的表单控件上

<form>
  <label for="male">Male</label><!--用for属性关联input标签的id属性-->
  <input type="radio" name="sex" id="male" />
  <br />
  <label for="female">Female</label>
  <input type="radio" name="sex" id="female" />
</form>

更多HTML标签:点击

HTML模板参考:点击

 

posted @ 2018-01-08 22:12  Wilson_Blogs  阅读(514)  评论(0编辑  收藏  举报