HTML介紹
Web服務(wù)本質(zhì)
import socket
sk = socket.socket()
sk.bind(("127.0.0.1, 8000"))
while True:
conn, addr = sk.accept()
data = conn.recv(8096)
conn.send(b"HTTP/1.1 200 OK\r\n\r\n")
conn.close()
瀏覽器發(fā)請(qǐng)求 --> HTTP協(xié)議 --> 服務(wù)端接收請(qǐng)求 --> 服務(wù)端返回響應(yīng) --> 服務(wù)端把HTML文件內(nèi)容發(fā)給瀏覽器 --> 瀏覽器渲染頁面
HTML是什么捣域?
- 超文本標(biāo)記語言(Hypertext Markup Language, HTML)是一種用于創(chuàng)建網(wǎng)頁的標(biāo)記語言代虾。
- 本質(zhì)上是瀏覽器可識(shí)別的規(guī)則谤碳,我們按照規(guī)則寫網(wǎng)頁代承,瀏覽器根據(jù)規(guī)則渲染我們的網(wǎng)頁备徐。對(duì)于不同的瀏覽器溉贿,對(duì)同一個(gè)標(biāo)簽可能會(huì)有不同的解釋黍聂。(兼容性問題)
- 網(wǎng)頁文件的擴(kuò)展名:.html或.htm
HTML不是什么?
HTML是一種標(biāo)記語言(markup language)源葫,它不是一種編程語言。
HTML使用標(biāo)簽來描述網(wǎng)頁派哲。
HTML文檔結(jié)構(gòu)
最基本的HTML文檔:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>css樣式優(yōu)先級(jí)</title>
</head>
<body>
</body>
</html>
-
<!DOCTYPE html>
聲明為HTML5文檔臼氨。 -
<html>
、</html>
是文檔的開始標(biāo)記和結(jié)束的標(biāo)記芭届。是HTML頁面的根元素储矩,在它們之間是文檔的頭部(head)和主體(body)。 -
<head>
褂乍、</head>
定義了HTML文檔的開頭部分持隧。它們之間的內(nèi)容不會(huì)在瀏覽器的文檔窗口顯示。包含了文檔的元(meta)數(shù)據(jù)逃片。 -
<title>
屡拨、</title>
定義了網(wǎng)頁標(biāo)題,在瀏覽器標(biāo)題欄顯示褥实。 -
<body>
呀狼、</body>
之間的文本是可見的網(wǎng)頁主體內(nèi)容。
注意:對(duì)于中文網(wǎng)頁需要使用 <meta charset="utf-8"> 聲明編碼损离,否則會(huì)出現(xiàn)亂碼哥艇。有些瀏覽器會(huì)設(shè)置 GBK 為默認(rèn)編碼,則你需要設(shè)置為 <meta charset="gbk">僻澎。*
HTML標(biāo)簽格式
- HTML標(biāo)簽是由尖括號(hào)包圍的關(guān)鍵字貌踏,如
<html>, <div>
等 - HTML標(biāo)簽通常是成對(duì)出現(xiàn)的,比如:
<div>
和</div>
窟勃,第一個(gè)標(biāo)簽是開始祖乳,第二個(gè)標(biāo)簽是結(jié)束。結(jié)束標(biāo)簽會(huì)有斜線秉氧。 - 也有一部分標(biāo)簽是單獨(dú)呈現(xiàn)的眷昆,比如:
<br/>
、<hr/>
谬运、<img src="1.jpg" />
等隙赁。 - 標(biāo)簽里面可以有若干屬性,也可以不帶屬性梆暖。
標(biāo)簽的語法:
- <標(biāo)簽名 屬性1=“屬性值1” 屬性2=“屬性值2”……>內(nèi)容部分</標(biāo)簽名>
- <標(biāo)簽名 屬性1=“屬性值1” 屬性2=“屬性值2”…… />
幾個(gè)很重要的屬性:
- id:定義標(biāo)簽的唯一ID伞访,HTML文檔樹中唯一
- class:為html元素定義一個(gè)或多個(gè)類名(classname)(CSS樣式類名)
- style:規(guī)定元素的行內(nèi)樣式(CSS樣式)
HTML注釋
<!--注釋內(nèi)容-->
注釋是代碼之母。--摘自哪吒語錄
<!DOCTYPE>標(biāo)簽
<!DOCTYPE> 聲明必須是 HTML 文檔的第一行轰驳,位于 <html> 標(biāo)簽之前厚掷。
<!DOCTYPE> 聲明不是 HTML 標(biāo)簽弟灼;它是指示 web 瀏覽器關(guān)于頁面使用哪個(gè) HTML 版本進(jìn)行編寫的指令。
HTML常用標(biāo)簽
head內(nèi)常用標(biāo)簽
標(biāo)簽 | 意義 |
---|---|
<title></title> | 定義網(wǎng)頁標(biāo)題 |
<style></style> | 定義內(nèi)部樣式表 |
<script></script> | 定義JS代碼或引入外部JS文件 |
<link/> | 引入外部樣式表文件 |
<meta/> | 定義網(wǎng)頁原信息 |
Meta標(biāo)簽
Meta標(biāo)簽介紹:
- <meta>元素可提供有關(guān)頁面的元信息(mata-information),針對(duì)搜索引擎和更新頻度的描述和關(guān)鍵詞冒黑。
- <meta>標(biāo)簽位于文檔的頭部田绑,不包含任何內(nèi)容。
- <meta>提供的信息是用戶不可見的抡爹。
meta標(biāo)簽的組成:meta標(biāo)簽共有兩個(gè)屬性掩驱,它們分別是http-equiv屬性和name 屬性,不同的屬性又有不同的參數(shù)值冬竟,這些不同的參數(shù)值就實(shí)現(xiàn)了不同的網(wǎng)頁功能欧穴。
1.http-equiv屬性:相當(dāng)于http的文件頭作用,它可以向?yàn)g覽器傳回一些有用的信息泵殴,以幫助正確地顯示網(wǎng)頁內(nèi)容涮帘,與之對(duì)應(yīng)的屬性值為content,content中的內(nèi)容其實(shí)就是各個(gè)參數(shù)的變量值笑诅。
<!--2秒后跳轉(zhuǎn)到對(duì)應(yīng)的網(wǎng)址调缨,注意引號(hào)-->
<meta http-equiv="refresh" content="2;URL=https://www.oldboyedu.com">
<!--指定文檔的編碼類型-->
<meta http-equiv="content-Type" charset=UTF8">
<!--告訴IE以最高級(jí)模式渲染文檔-->
<meta http-equiv="x-ua-compatible" content="IE=edge">
2.name屬性: 主要用于描述網(wǎng)頁,與之對(duì)應(yīng)的屬性值為content吆你,content中的內(nèi)容主要是便于搜索引擎機(jī)器人查找信息和分類信息用的弦叶。
<meta name="keywords" content="meta總結(jié),html meta,meta屬性,meta跳轉(zhuǎn)">
<meta name="description" content="老男孩教育Python學(xué)院">
<body></body>內(nèi)常用標(biāo)簽
基本標(biāo)簽(塊級(jí)標(biāo)簽和內(nèi)聯(lián)標(biāo)簽)
<b>加粗</b>
<i>斜體</i>
<u>下劃線</u>
<s>刪除</s>
<p>段落標(biāo)簽</p>
<h1>標(biāo)題1</h1>
<h2>標(biāo)題2</h2>
<h3>標(biāo)題3</h3>
<h4>標(biāo)題4</h4>
<h5>標(biāo)題5</h5>
<h6>標(biāo)題6</h6>
<!--換行-->
<br>
<!--水平線--><hr>
特殊字符
內(nèi)容 | 對(duì)應(yīng)代碼 |
---|---|
空格 | |
> | > |
< | < |
& | & |
¥ | ¥ |
版權(quán) | © |
注冊(cè) | ® |
div標(biāo)簽和span標(biāo)簽
div標(biāo)簽用來定義一個(gè)塊級(jí)元素,并無實(shí)際的意義妇多。主要通過CSS樣式為其賦予不同的表現(xiàn)湾蔓。
span標(biāo)簽用來定義內(nèi)聯(lián)(行內(nèi))元素,并無實(shí)際的意義砌梆。主要通過CSS樣式為其賦予不同的表現(xiàn)。
塊級(jí)元素與行內(nèi)元素的區(qū)別:
所謂塊元素贬循,是以另起一行開始渲染的元素咸包,行內(nèi)元素則不需另起一行。如果單獨(dú)在網(wǎng)頁中插入這兩個(gè)元素杖虾,不會(huì)對(duì)頁面產(chǎn)生任何的影響烂瘫。
這兩個(gè)元素是專門為定義CSS樣式而生的。
注意:
關(guān)于標(biāo)簽嵌套:通常塊級(jí)元素可以包含內(nèi)聯(lián)元素或某些塊級(jí)元素奇适,但內(nèi)聯(lián)元素不能包含塊級(jí)元素坟比,它只能包含其它內(nèi)聯(lián)元素。
p標(biāo)簽不能包含塊級(jí)標(biāo)簽嚷往,p標(biāo)簽也不能包含p標(biāo)簽葛账。
img標(biāo)簽
<img src="圖片的路徑" alt="圖片未加載成功時(shí)的提示" title="鼠標(biāo)懸浮時(shí)提示信息" width="寬" height="高(寬高兩個(gè)屬性只用一個(gè)會(huì)自動(dòng)等比縮放)">
a標(biāo)簽
超鏈接標(biāo)簽
所謂的超鏈接是指從一個(gè)網(wǎng)頁指向一個(gè)目標(biāo)的連接關(guān)系,這個(gè)目標(biāo)可以是另一個(gè)網(wǎng)頁皮仁,也可以是相同網(wǎng)頁上的不同位置籍琳,還可以是一個(gè)圖片菲宴,一個(gè)電子郵件地址,一個(gè)文件趋急,甚至是一個(gè)應(yīng)用程序喝峦。
什么是URL?
URL是統(tǒng)一資源定位器(Uniform Resource Locator)的縮寫呜达,也被稱為網(wǎng)頁地址谣蠢,是因特網(wǎng)上標(biāo)準(zhǔn)的資源的地址。
URL舉例
http://www.sohu.com/stu/intro.html
http://222.172.123.33/stu/intro.html
URL地址由4部分組成
第1部分:為協(xié)議:http://查近、ftp://等
第2部分:為站點(diǎn)地址:可以是域名或IP地址
第3部分:為頁面在站點(diǎn)中的目錄:stu
第4部分:為頁面名稱眉踱,例如 index.html
各部分之間用“/”符號(hào)隔開。
<a target="_blank" >點(diǎn)我</a>
href屬性指定目標(biāo)網(wǎng)頁地址嗦嗡。該地址可以有幾種類型:
- 絕對(duì)URL - 指向另一個(gè)站點(diǎn)(比如 href="http://www.jd.com)
- 相對(duì)URL - 指當(dāng)前站點(diǎn)中確切的路徑(href="index.htm")
- 錨URL - 指向頁面中的錨(href="#top")
target:
- _blank表示在新標(biāo)簽頁中打開目標(biāo)網(wǎng)頁
- _self表示在當(dāng)前標(biāo)簽頁中打開目標(biāo)網(wǎng)頁
列表
- 無序列表
<ul type="disc">
<li>第一項(xiàng)</li>
<li>第二項(xiàng)</li>
</ul>
type屬性:
- disc(實(shí)心圓點(diǎn)勋锤,默認(rèn)值)
- circle(空心圓圈)
- square(實(shí)心方塊)
- none(無樣式)
- 有序列表
<ol type="1" start="2">
<li>第一項(xiàng)</li>
<li>第二項(xiàng)</li>
</ol>
type屬性:
- 1 數(shù)字列表,默認(rèn)值
- A 大寫字母
- a 小寫字母
- Ⅰ大寫羅馬
- ⅰ小寫羅馬
- 標(biāo)題列表
<dl>
<dt>標(biāo)題1</dt>
<dd>內(nèi)容1</dd>
<dt>標(biāo)題2</dt>
<dd>內(nèi)容1</dd>
<dd>內(nèi)容2</dd>
</dl>
表格
表格是一個(gè)二維數(shù)據(jù)空間侥祭,一個(gè)表格由若干行組成叁执,一個(gè)行又有若干單元格組成,單元格里可以包含文字矮冬、列表谈宛、圖案、表單胎署、數(shù)字符號(hào)吆录、預(yù)置文本和其它的表格等內(nèi)容。 表格最重要的目的是顯示表格類數(shù)據(jù)琼牧。表格類數(shù)據(jù)是指最適合組織為表格格式(即按行和列組織)的數(shù)據(jù)恢筝。 表格的基本結(jié)構(gòu):
<table>
<thead>
<tr>
<th>序號(hào)</th>
<th>姓名</th>
<th>愛好</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Egon</td>
<td>杠娘</td>
</tr>
<tr>
<td>2</td>
<td>Yuan</td>
<td>日天</td>
</tr>
</tbody>
</table>
屬性:
- border: 表格邊框.
- cellpadding: 內(nèi)邊距
- cellspacing: 外邊距.
- width: 像素 百分比.(最好通過css來設(shè)置長(zhǎng)寬)
- rowspan: 單元格豎跨多少行
- colspan: 單元格橫跨多少列(即合并單元格)
form表單
功能:
表單用于向服務(wù)器傳輸數(shù)據(jù),從而實(shí)現(xiàn)用戶與Web服務(wù)器的交互
表單能夠包含input系列標(biāo)簽巨坊,比如文本字段撬槽、復(fù)選框、單選框趾撵、提交按鈕等等侄柔。
表單還可以包含textarea、select占调、fieldset和 label標(biāo)簽暂题。
表單屬性
屬性 | 描述 |
---|---|
accept-charset | 規(guī)定在被提交表單中使用的字符集(默認(rèn):頁面字符集)。 |
action | 規(guī)定向何處提交表單的地址(URL)(提交頁面)究珊。 |
autocomplete | 規(guī)定瀏覽器應(yīng)該自動(dòng)完成表單(默認(rèn):開啟)薪者。 |
enctype | 規(guī)定被提交數(shù)據(jù)的編碼(默認(rèn):url-encoded)。 |
method | 規(guī)定在提交表單時(shí)所用的 HTTP 方法(默認(rèn):GET)苦银。 |
name | 規(guī)定識(shí)別表單的名稱(對(duì)于 DOM 使用:document.forms.name)啸胧。 |
novalidate | 規(guī)定瀏覽器不驗(yàn)證表單赶站。 |
target | 規(guī)定 action 屬性中地址的目標(biāo)(默認(rèn):_self)。 |
表單元素
基本概念:
HTML表單是HTML元素中較為復(fù)雜的部分纺念,表單往往和腳本贝椿、動(dòng)態(tài)頁面、數(shù)據(jù)處理等功能相結(jié)合陷谱,因此它是制作動(dòng)態(tài)網(wǎng)站很重要的內(nèi)容烙博。
表單一般用來收集用戶的輸入信息
表單工作原理:
訪問者在瀏覽有表單的網(wǎng)頁時(shí),可填寫必需的信息烟逊,然后按某個(gè)按鈕提交渣窜。這些信息通過Internet傳送到服務(wù)器上。
服務(wù)器上專門的程序?qū)@些數(shù)據(jù)進(jìn)行處理宪躯,如果有錯(cuò)誤會(huì)返回錯(cuò)誤信息乔宿,并要求糾正錯(cuò)誤。當(dāng)數(shù)據(jù)完整無誤后访雪,服務(wù)器反饋一個(gè)輸入完成的信息详瑞。
Django接收上傳文件代碼
from django.conf.urls import url
from django.shortcuts import HttpResponse
def upload(request):
print("request.GET:", request.GET)
print("request.POST:", request.POST)
if request.FILES:
filename = request.FILES["file"].name
with open(filename, 'wb') as f:
for chunk in request.FILES['file'].chunks():
f.write(chunk)
return HttpResponse('上傳成功')
return HttpResponse("收到了!")
urlpatterns = [
url(r'^upload/', upload),
]
input
<input>
元素會(huì)根據(jù)不同的 type 屬性臣缀,變化為多種形態(tài)坝橡。
type屬性值 | 表現(xiàn)形式 | 對(duì)應(yīng)代碼 |
---|---|---|
text | 單行輸入文本 | <input type=text" /> |
password | 密碼輸入框 | <input type="password" /> |
date | 日期輸入框 | <input type="date" /> |
checkbox | 復(fù)選框 | <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:表單提交時(shí)的“鍵”,注意和id的區(qū)別
- value:表單提交時(shí)對(duì)應(yīng)項(xiàng)的值
- type="button", "reset", "submit"時(shí)精置,為按鈕上顯示的文本年內(nèi)容
- type="text","password","hidden"時(shí)计寇,為輸入框的初始值
- type="checkbox", "radio", "file",為輸入相關(guān)聯(lián)的值
- checked:radio和checkbox默認(rèn)被選中的項(xiàng)
- readonly:text和password設(shè)置只讀
- disabled:所有input均適用
select標(biāo)簽
<form action="" method="post">
<select name="city" id="city">
<option value="1">北京</option>
<option selected="selected" value="2">上海</option>
<option value="3">廣州</option>
<option value="4">深圳</option>
</select>
</form>
屬性說明:
- multiple:布爾屬性脂倦,設(shè)置后為多選番宁,否則默認(rèn)單選
- disabled:禁用
- selected:默認(rèn)選中該項(xiàng)
- value:定義提交時(shí)的選項(xiàng)值
label標(biāo)簽
定義:<label> 標(biāo)簽為 input 元素定義標(biāo)注(標(biāo)記)。
說明:
- label 元素不會(huì)向用戶呈現(xiàn)任何特殊效果赖阻。
- <label> 標(biāo)簽的 for 屬性值應(yīng)當(dāng)與相關(guān)元素的 id 屬性值相同贝淤。
textarea多行文本
<textarea name="memo" id="memo" cols="30" rows="10">
默認(rèn)內(nèi)容
</textarea>
屬性說明:
- name:名稱
- rows:行數(shù)
- cols:列數(shù)
- disabled:禁用