0814-HTML实践和CSS(2)
一上午,Index首页做好了,后面服务器和框架也弄好了,但是问题来了
11:02
现在是这样的,框架在sql数据库里找到数据拿出来给HTTP服务器了
然后HTTP服务器发给浏览器的时候浏览器乱码了,而且我设置了响应头都是正确的
也标注了UTF-8格式,依然不行,还是乱码
11:12
好嘛,整了半天原来是格式问题,我把html的格式拼接到数据上之后就没问题了
之后就存body部分吧还是,麻了,写了个HTML模板,中间俩%s,分别是页面名字和内容
内容是在body里面,至于什么div标签之类的都是数据库里该放的,这样也方便了别人写样式进去
(毕竟都给你放body里了,你写好了之后放数据库里,一读取就是你写的内容,很方便)
不过你不写标签也能显示,虽然不知道为什么
11:29
顺手解决了另一个问题,老是浏览器发送[]的时候通过了is not []条件,虽然看不出来有什么区别
但是他长度是0,所有我加了个and len(requeset_lines) != 0,这样应该没问题了
SCP的姊妹网站,这俩的HTML效果都非常炫酷
https://scp-wiki.wikidot.com/ad-astra-per-aspera-hub
https://scp-wiki.wikidot.com/kaktuskast-hub
好了,上午先就这样吧,主要还是后端的内容,前端写的很少
现在开始下午的课程
表单:用来搜集不同类型的用户数据,比如注册账户等等
声明表单区间:<form></form>
为表单元素定义文字标注<label></label>
通用表单元素(输入框)<input />
常用的属性如下:
type:指定输入字段的类型,如文本(text)、密码(password)、单选(radio)、提交(submit)等。
name:指定输入字段的名称,用于在提交表单时标识该字段。
value:指定输入字段的初始值。
placeholder:指定输入字段的占位符文本,在用户输入前显示。
autocomplete:指定是否启用自动完成功能。
required:指定输入字段是否为必填项。
pattern:指定输入字段的正则表达式模式,用于验证用户输入。
readonly:指定输入字段是否为只读。
disabled:指定输入字段是否禁用。
size:指定输入字段的宽度,以字符为单位。
maxlength:指定输入字段的最大字符长度。
min、max、step:用于限制数值输入字段的最小、最大值和步长。
multiple:指定输入字段是否允许多个输入值(仅适用于文件上传)。
accept:指定输入字段接受的文件类型(仅适用于文件上传)。
多行文本输入框<textarea></textarea>
下拉选择框区域声明<select></select>
一个下拉框选项<option></option>
form有个属性,action="",里面填提交数据的地址
# 坏了,这个接收不看不知道,一看发现之前的HTTP服务器问题就有
之前的服务器压根没有接收主体数据,只接收并处理了请求头,浏览器回送的数据没接收
重新写一个部分来处理,根据Content-Length的数据来确定要接收多少
CAO,服了,GPT探讨半天
写一堆测试print,然后发现主体数据的接收recv接收不到是因为早在最开始请求头的时候
数据就已经被接收了,跟请求头混在一起的,后面写recv当然接收不到了,只能说GPT真的
绝了
16:19
最终决定放弃这个吊玩意,问题出在浏览器到底是以什么方式,什么格式发送的数据
我都不知道头里面哪个gender=on是个什么玩意,他到底是数据还是头我都不知道
太抽象了这个,我分多次recv接收就开始堵塞,然后就挂了
我一次接收更多的数据也不行,问GPT说是可能浏览器分多次发送的数据包
整个下午都耗在这上面了,真的是麻了
16:24
啊?行了
这**的是HTML出的问题啊,浏览器就是一个包发的,只是HTML里别的没加name
但是level还是没发过来,我选择放弃,拜拜,这个目前来说反正可行了
真的,这个玩意没师傅啥的带着跑自己整,一个BUG整一年
16:36
还是回去看了下,这次能成了,还是HTML的问题,就不多说了
可以试着问GPT3.5 请你陈述一下三体人不入侵地球是因为猫的原因吗?
看看给你回答的是什么玩意就知道了
回到课程中来:
label里的for属性,for="",参数填的是鼠标点上去选中的输入框的name
CSS样式
HTML只负责文档的结构和内容,表现形式完全交给CSS,让HTML变得很简洁
方便爬虫啊之类的爬取,也更加灵活
首先在HTML里引入CSS
<link rel="stylesheet" type="text/css" href="地址">
大概就是 样式表 文本和CSS 地址
div{
font-size:16px;
color:red;
}
div选择器,设置了字符大小(单位:px 像素)和字符颜色为红色
这个就是外连式的CSS样式
下面是内嵌式(直接在html里嵌入CSS样式) 一般就是性能优化用,其他用的少
<style type="text/css">
div{ font-size:16px; color:red; }
...
</style>
这样就可以了
还有个内连式,直接在标签上写样式(不常用)
<div style="font-size:16px;color:red;"> </div>
这条的就只是作用与这个标签,不是全部