1、web服務的本質
css
import socket sk = socket.socket() sk.bind(("127.0.0.1", 8080)) sk.listen(5) while True: conn, addr = sk.accept() data = conn.recv(8096) conn.send(b"HTTP/1.1 200 OK\r\n\r\n") conn.secd(b"<h1>Hello world!</h1>") conn.close()
瀏覽器發請求 --> HTTP協議 --> 服務端接收請求 --> 服務端返回響應 --> 服務端把HTML文件內容發給瀏覽器 --> 瀏覽器渲染頁面
2、html介紹
一、特色
(1)超文本標記語言(HypertextMarkupLanguage, HTML)是一種用於建立網頁的標記語言。
(2)本質上是瀏覽器可識別的規則,咱們按照規則寫網頁,瀏覽器根據規則渲染咱們的網頁。對於不一樣的瀏覽器,對同一個標籤可能會有不一樣的解釋。(兼容性問題)
(3)網頁文件的擴展名:.html或.htm
(4)HTML是一種標記語言(markuplanguage),它不是一種編程語言。
(5)HTML使用標籤來描述網頁。
html
二、html結構python
<!DOCTYPE html> <!--<!DOCTYPE html>聲明爲HTML5文檔。--> <html> <!--<html>、</html>是文檔的開始標記和結束的標記。是HTML頁面的根元素,在它們之間是文檔的頭部(head)和主體(body)。--> <head> <!--<head>、</head>定義了HTML文檔的開頭部分。它們之間的內容不會在瀏覽器的文檔窗口顯示。包含了文檔的元(meta)數據。--> <meta charset="UTF-8"> <!--聲明編碼 <title>html格式</title> <!--<title>、</title>定義了網頁標題,在瀏覽器標題欄顯示。--> </head> <body> <!--<body>、</body>之間的文本是可見的網頁主體內容--> </body> </html>
三、html標籤web
(1)標籤的語法:編程
<標籤名 屬性1=「屬性值1」 屬性2=「屬性值2」……>內容部分</標籤名>瀏覽器
<標籤名 屬性1=「屬性值1」 屬性2=「屬性值2」…… />服務器
(2)幾個很重要的屬性:網絡
id:定義標籤的惟一ID,HTML文檔樹中惟一socket
class:爲html元素定義一個或多個類名(classname)(CSS樣式類名)編程語言
style:規定元素的行內樣式(CSS樣式)
3、html經常使用標籤
一、head內經常使用標籤
<title></title> #定義網頁標題
<style></style> #定義內部樣式表
<script></script> #定義JS代碼或引入外部JS文件
<link/> #引入外部樣式表文件
<meta/> #定義網頁原信息
二、Meta標籤
(1)Meta標籤介紹:
<meta>元素可提供有關頁面的原信息(mata-information),針對搜索引擎和更新頻度的描述和關鍵詞。
<meta>標籤位於文檔的頭部,不包含任何內容。
<meta>提供的信息是用戶不可見的。
(2)meta標籤的組成
#1.http-equiv屬性:至關於http的文件頭做用,它能夠向瀏覽器傳回一些有用的信息,以幫助正確地顯示網頁內容,與之對應的屬性值爲content,content中的內容其實就是各個參數的變量值。
<!--2秒後跳轉到對應的網址,注意引號-->
<meta http-equiv="refresh" content="2;URL=https://www.baidu.com">
<!--指定文檔的編碼類型-->
<meta http-equiv="content-Type" charset=UTF8">
<!--告訴IE以最高級模式渲染文檔-->
<meta http-equiv="x-ua-compatible" content="IE=edge">
#2.name屬性: 主要用於描述網頁,與之對應的屬性值爲content,content中的內容主要是便於搜索引擎機器人查找信息和分類信息用的。
<meta name="keywords" content="meta總結,html meta,meta屬性,meta跳轉">
<meta name="description" content="北京Python網絡學院">
4、body內經常使用標籤
一、基本標籤
<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>
二、特殊字符
內容 對應代碼
空格
> >
< <
& &
¥ ¥
版權 ©
註冊 ®
三、div標籤和span標籤
div標籤用來定義一個塊級元素,並沒有實際的意義。主要經過CSS樣式爲其賦予不一樣的表現。
span標籤用來定義內聯(行內)元素,並沒有實際的意義。主要經過CSS樣式爲其賦予不一樣的表現。
塊級元素與行內元素的區別:
所謂塊元素,是以另起一行開始渲染的元素,行內元素則不需另起一行。若是單獨在網頁中插入這兩個元素,不會對頁面產生任何的影響。
這兩個元素是專門爲定義CSS樣式而生的。
p標籤不能包含塊級標籤。
四、img標籤
<img src="圖片的路徑" alt="圖片未加載成功時的提示" title="鼠標懸浮時提示信息" width="寬" height="高(寬高兩個屬性只用一個會自動等比縮放)">
五、a標籤(超連接標籤)
所謂的超連接是指從一個網頁指向一個目標的鏈接關係,這個目標能夠是另外一個網頁,也能夠是相同網頁上的不一樣位置,還能夠是一個圖片,一個電子郵件地址,一個文件,甚至是一個應用程序。
<a href="http://www.oldboyedu.com" target="_blank" >點我</a>
href屬性指定目標網頁地址。該地址能夠有幾種類型:
絕對URL - 指向另外一個站點(好比 href="http://www.jd.com)
相對URL - 指當前站點中確切的路徑(href="index.htm")
錨URL - 指向頁面中的錨(href="#top")
target:
_blank表示在新標籤頁中打開目標網頁
_self表示在當前標籤頁中打開目標網頁
六、列表
1.無序列表
<ul type="disc">
<li>第一項</li>
<li>第二項</li>
</ul>
type屬性:
disc(實心圓點,默認值)
circle(空心圓圈)
square(實心方塊)
none(無樣式)
2.有序列表
<ol type="1" start="2">
<li>第一項</li>
<li>第二項</li>
</ol>
type屬性:
1 數字列表,默認值
A 大寫字母
a 小寫字母
Ⅰ大寫羅馬
ⅰ小寫羅馬
3.標題列表
<dl>
<dt>標題1</dt>
<dd>內容1</dd>
<dt>標題2</dt>
<dd>內容1</dd>
<dd>內容2</dd>
</dl>
七、表格
表格是一個二維數據空間,一個表格由若干行組成,一個行又有若干單元格組成,單元格里能夠包含文字、列表、圖案、表單、數字符號、預置文本和其它的表格等內容。
表格最重要的目的是顯示錶格類數據。表格類數據是指最適合組織爲表格格式(即按行和列組織)的數據。
表格的基本結構:
<table> <thead> <tr> <th>序號</th> <!--列表第一行顯示:序號 姓名 愛好--> <th>姓名</th> <th>排行</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>Wang</td> <td>大哥</td> </tr> <tr> <td>2</td> <td>Yuan</td> <td>二弟</td> </tr> </tbody> </table>
屬性:
border: 表格邊框.
cellpadding: 內邊距,內容與邊框的間隙
cellspacing: 外邊距.,邊框與邊框的間隙
width: 像素 百分比.(最好經過css來設置長寬)
rowspan: 單元格豎跨多少行
colspan: 單元格橫跨多少列(即合併單元格)
八、form
(1)功能:
表單用於向服務器傳輸數據,從而實現用戶與Web服務器的交互
表單可以包含input系列標籤,好比文本字段、複選框、單選框、提交按鈕等等。
表單還能夠包含textarea、select、fieldset和 label標籤。
(2)表單屬性
accept-charset 規定在被提交表單中使用的字符集(默認:頁面字符集)
action 規定向何處提交表單的地址(URL)(提交頁面)
autocomplete 規定瀏覽器應該自動完成表單(默認:開啓)
enctype 規定被提交數據的編碼(默認:url-encoded)
method 規定在提交表單時所用的 HTTP 方法(默認:GET)
name 規定識別表單的名稱(對於 DOM 使用:document.forms.name)
novalidate 規定瀏覽器不驗證表單。
target 規定 action 屬性中地址的目標(默認:_self)
(3)表單元素
基本概念:
HTML表單是HTML元素中較爲複雜的部分,表單每每和腳本、動態頁面、數據處理等功能相結合,所以它是製做動態網站很重要的內容。
表單通常用來收集用戶的輸入信息
表單工做原理:
訪問者在瀏覽有表單的網頁時,可填寫必需的信息,而後按某個按鈕提交。這些信息經過Internet傳送到服務器上。
服務器上專門的程序對這些數據進行處理,若是有錯誤會返回錯誤信息,並要求糾正錯誤。當數據完整無誤後,服務器反饋一個輸入完成的信息。
九、input
type屬性值 表現形式 對應代碼
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:表單提交時的「鍵」,注意和id的區別
value:表單提交時對應項的值
type="button", "reset", "submit"時,爲按鈕上顯示的文本年內容
type="text","password","hidden"時,爲輸入框的初始值
type="checkbox", "radio", "file",爲輸入相關聯的值
checked:radio和checkbox默認被選中的項
readonly:text和password設置只讀
disabled:全部input均適用
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="" method="post"> <p>姓名:<input type="text" name="user"></p> <p>密碼:<input type="password" name="pwd"></p> <p>愛好:<input type="checkbox" name="hobby" value="basketball" checked>籃球 <input type="checkbox" name="hobby" value="football">足球 <input type="checkbox" name="hobby" value="run">跑步 </p> <p><input type="radio" name="gender" value="male">男 <input type="radio" name="gender" value="female">女 <input type="radio" name="gender" value="other">其餘 </p> <p><input type="button" value="按鈕"></p> <p><input type="reset"></p> <p> 頭像:<input type="file" name="picture"> </p> <p><input type="hidden" name="tag" value="is_tag_type"></p> <p><input type="submit" value="肯定" </p> </form> </body> </html>
十、select標籤
<form action="" method="post"> <select name="city" id="city" size="2" multiple> <option value="1">北京</option> <option selected="selected" value="2">上海</option> <option value="3">廣州</option> <option value="4">深圳</option> </select> </form>
屬性說明:
multiple:布爾屬性,設置後爲多選,不然默認單選
disabled:禁用
selected:默認選中該項
value:定義提交時的選項值
size:顯示的條數
multiple:複選
十一、label標籤
定義:<label> 標籤爲 input 元素定義標註(標記)。
說明:
label 元素不會向用戶呈現任何特殊效果。
<label> 標籤的 for 屬性值應當與相關元素的 id 屬性值相同。
<form action=""> <label for="username">用戶名</label> <input type="text" id="username" name="username"> </form>
十二、textarea多行文本
<textarea name="memo" id="memo" cols="30" rows="10"> <!--name:名稱|rows:行數|cols:列數|disabled:禁用--> 默認內容 </textarea>
5、標籤分類
一、塊級標籤
經常使用的塊級元素:
address , center , div , dl ,, form , h1 , h2 , h3 , h4 , h5 , h6 , menu , ol , p , table , ul , li
二、內聯標籤
經常使用內聯的元素:
a , b , br , em , font , img , input , label , select , small , span , textarea
三、塊級標籤和內聯標籤的區別
塊級標籤具備如下特色:
(1)老是在新行上開始,佔據一整行;
(2)高度,行高以及外邊距和內邊距均可控制;
(3)寬帶始終是與瀏覽器寬度同樣,與內容無關;
(4)它能夠容納內聯標籤和其餘塊標籤。
內聯標籤的特色:
(1)和其餘標籤都在一行上;
(2)高,行高及外邊距和內邊距部分可改變;
(3)寬度只與內容有關;
(4)內聯標籤只能容納文本或者其餘內聯標籤。