0814-HTML實(shí)踐和CSS(2)
一上午,Index首頁(yè)做好了,后面服務(wù)器和框架也弄好了,但是問(wèn)題來(lái)了
11:02
現(xiàn)在是這樣的,框架在sql數(shù)據(jù)庫(kù)里找到數(shù)據(jù)拿出來(lái)給HTTP服務(wù)器了
然后HTTP服務(wù)器發(fā)給瀏覽器的時(shí)候?yàn)g覽器亂碼了,而且我設(shè)置了響應(yīng)頭都是正確的
也標(biāo)注了UTF-8格式,依然不行,還是亂碼
11:12
好嘛,整了半天原來(lái)是格式問(wèn)題,我把html的格式拼接到數(shù)據(jù)上之后就沒(méi)問(wèn)題了
之后就存body部分吧還是,麻了,寫(xiě)了個(gè)HTML模板,中間倆%s,分別是頁(yè)面名字和內(nèi)容
內(nèi)容是在body里面,至于什么div標(biāo)簽之類(lèi)的都是數(shù)據(jù)庫(kù)里該放的,這樣也方便了別人寫(xiě)樣式進(jìn)去
(畢竟都給你放body里了,你寫(xiě)好了之后放數(shù)據(jù)庫(kù)里,一讀取就是你寫(xiě)的內(nèi)容,很方便)
不過(guò)你不寫(xiě)標(biāo)簽也能顯示,雖然不知道為什么
11:29
順手解決了另一個(gè)問(wèn)題,老是瀏覽器發(fā)送[]的時(shí)候通過(guò)了is not []條件,雖然看不出來(lái)有什么區(qū)別
但是他長(zhǎng)度是0,所有我加了個(gè)and len(requeset_lines) != 0,這樣應(yīng)該沒(méi)問(wèn)題了
SCP的姊妹網(wǎng)站,這倆的HTML效果都非常炫酷
https://scp-wiki.wikidot.com/ad-astra-per-aspera-hub
https://scp-wiki.wikidot.com/kaktuskast-hub
好了,上午先就這樣吧,主要還是后端的內(nèi)容,前端寫(xiě)的很少
現(xiàn)在開(kāi)始下午的課程
表單:用來(lái)搜集不同類(lèi)型的用戶數(shù)據(jù),比如注冊(cè)賬戶等等
聲明表單區(qū)間:<form></form>
為表單元素定義文字標(biāo)注<label></label>
通用表單元素(輸入框)<input />
常用的屬性如下:
? ? type:指定輸入字段的類(lèi)型,如文本(text)、密碼(password)、單選(radio)、提交(submit)等。
? ? name:指定輸入字段的名稱,用于在提交表單時(shí)標(biāo)識(shí)該字段。
? ? value:指定輸入字段的初始值。
? ? placeholder:指定輸入字段的占位符文本,在用戶輸入前顯示。
? ? autocomplete:指定是否啟用自動(dòng)完成功能。
? ? required:指定輸入字段是否為必填項(xiàng)。
? ? pattern:指定輸入字段的正則表達(dá)式模式,用于驗(yàn)證用戶輸入。
? ? readonly:指定輸入字段是否為只讀。
? ? disabled:指定輸入字段是否禁用。
? ? size:指定輸入字段的寬度,以字符為單位。
? ? maxlength:指定輸入字段的最大字符長(zhǎng)度。
? ? min、max、step:用于限制數(shù)值輸入字段的最小、最大值和步長(zhǎng)。
? ? multiple:指定輸入字段是否允許多個(gè)輸入值(僅適用于文件上傳)。
? ? accept:指定輸入字段接受的文件類(lèi)型(僅適用于文件上傳)。
多行文本輸入框<textarea></textarea>
下拉選擇框區(qū)域聲明<select></select>
? ? 一個(gè)下拉框選項(xiàng)<option></option>
form有個(gè)屬性,action="",里面填提交數(shù)據(jù)的地址
# 壞了,這個(gè)接收不看不知道,一看發(fā)現(xiàn)之前的HTTP服務(wù)器問(wèn)題就有
之前的服務(wù)器壓根沒(méi)有接收主體數(shù)據(jù),只接收并處理了請(qǐng)求頭,瀏覽器回送的數(shù)據(jù)沒(méi)接收
重新寫(xiě)一個(gè)部分來(lái)處理,根據(jù)Content-Length的數(shù)據(jù)來(lái)確定要接收多少
CAO,服了,GPT探討半天
寫(xiě)一堆測(cè)試print,然后發(fā)現(xiàn)主體數(shù)據(jù)的接收recv接收不到是因?yàn)樵缭谧铋_(kāi)始請(qǐng)求頭的時(shí)候
數(shù)據(jù)就已經(jīng)被接收了,跟請(qǐng)求頭混在一起的,后面寫(xiě)recv當(dāng)然接收不到了,只能說(shuō)GPT真的
絕了
16:19
最終決定放棄這個(gè)吊玩意,問(wèn)題出在瀏覽器到底是以什么方式,什么格式發(fā)送的數(shù)據(jù)
我都不知道頭里面哪個(gè)gender=on是個(gè)什么玩意,他到底是數(shù)據(jù)還是頭我都不知道
太抽象了這個(gè),我分多次recv接收就開(kāi)始堵塞,然后就掛了
我一次接收更多的數(shù)據(jù)也不行,問(wèn)GPT說(shuō)是可能瀏覽器分多次發(fā)送的數(shù)據(jù)包
整個(gè)下午都耗在這上面了,真的是麻了
16:24
啊?行了
這**的是HTML出的問(wèn)題啊,瀏覽器就是一個(gè)包發(fā)的,只是HTML里別的沒(méi)加name
但是level還是沒(méi)發(fā)過(guò)來(lái),我選擇放棄,拜拜,這個(gè)目前來(lái)說(shuō)反正可行了
真的,這個(gè)玩意沒(méi)師傅啥的帶著跑自己整,一個(gè)BUG整一年
16:36
還是回去看了下,這次能成了,還是HTML的問(wèn)題,就不多說(shuō)了
可以試著問(wèn)GPT3.5 請(qǐng)你陳述一下三體人不入侵地球是因?yàn)樨埖脑騿幔?/p>
看看給你回答的是什么玩意就知道了
回到課程中來(lái):
label里的for屬性,for="",參數(shù)填的是鼠標(biāo)點(diǎn)上去選中的輸入框的name
CSS樣式
HTML只負(fù)責(zé)文檔的結(jié)構(gòu)和內(nèi)容,表現(xiàn)形式完全交給CSS,讓HTML變得很簡(jiǎn)潔
方便爬蟲(chóng)啊之類(lèi)的爬取,也更加靈活
首先在HTML里引入CSS
<link rel="stylesheet" type="text/css" href="地址">
大概就是 樣式表 文本和CSS 地址
div{
font-size:16px;
color:red;
}
div選擇器,設(shè)置了字符大小(單位:px 像素)和字符顏色為紅色
這個(gè)就是外連式的CSS樣式
下面是內(nèi)嵌式(直接在html里嵌入CSS樣式) 一般就是性能優(yōu)化用,其他用的少
<style type="text/css">
? ? div{ font-size:16px; color:red; }
? ? ...
</style>
這樣就可以了
還有個(gè)內(nèi)連式,直接在標(biāo)簽上寫(xiě)樣式(不常用)
<div style="font-size:16px;color:red;"> </div>
這條的就只是作用與這個(gè)標(biāo)簽,不是全部