前端
与用户直接打交道的操作界面都可以称之为是前端
后端(幕后工作者)
不直接与用户打交道的内部真正执行核心业务逻辑的代码程序
前端学习
真正的前端工程师也需要学习很长的时间 我们作为后端工程师对前端目前只做最核心的了解 大致七天的学习
前端核心基础
手写一个服务端程序
使用浏览器充当客户端
浏览器无法直接展示服务端的响应数据
由于游览器需要兼容很多服务端软件 为了实现无障碍沟通交流 有了一些协议
HTTP协议、FTP协议、HTTPS协议
浏览器发送的请求数据格式肯定没有问题 因为别人早就封装好了
问题出在我们自己写的服务端的响应数据格式
import socket
server = socket.socket()
server.bind(('127.0.0.1', 8080))
server.listen(5)
# 创建 den
while True:
sock, addr = server.accept()
while True:
data = sock.recv(1024)
print(str(data,'utf'))
sock.send(b'hello,baby')
请求数据格式
响应数据格式
利用数字来表示一些复杂的情况说明(类似于暗号)
1XX: 服务端已经接收到你的请求正在处理 你可以继续提交或者等待
2XX: 200 ok服务端给出了相应的响应
3XX: 重定向
4XX: 403请求不符合条件 404请求资源不存在
5XX: 服务端内部错误
我们在公司还会自己定义更多的状态码
一般情况下从10000开始
超文本标记语言
是所有浏览器展示的页面必备的!!
浏览器展示的界面我们也称之为 HTML页面 存储HTML语言的文件后缀一般是**.html**
HTML 没有任何多逻辑 所见即所得
HTML 注释语法
HTML 文件结构
<html> 所有的代码都必须写在html标签内部
<head>head> head内的数据一般都不是给用户看的
<body>body> body内的数据就是浏览器展示给用户看的
html>
HTML标签分类
HTML 代码是不讲究缩进的 我们只是习惯了python的缩进语法
| 标签 | 标签功能 |
|---|---|
| 控制网页小标题 |
| 内部支持编写css 控制标签样式的 |
| 引入外部CSS文件 |
| 内部支持编写JS代码 还可以通过src属性引入外部JS文件 |
meta | 通过内部属性的不同 可以有很多功能 |
# title
<title>我的第一个html文件title>
# stytle
<style>
body {
color: crimson;
}
style>
#link
<link rel="stylesheet" href="">
#script
<script>
confirm('程序 将在十秒钟后 启动自毁')
script>
# meta
<meta name="keywords" content="填写一些关键字 提升网页被搜索的概率"> #用处不大 浏览器 可以通过 合作 充值 将你提前
<meta name="description" content="填写一些网页的简介">
| 标签字符 | 功能 |
|---|---|
h1-h6 | 标题标签 |
| 段落标签 |
| 分割线 |
| 换行 |
| 下划线 |
| 删除线 |
| 加粗 |
注意:有很多样式 可能存在多种标签可以实现
块儿级标签 与行内 标签
块儿级标签 h1-h6 p hr br
一块标签独占一行
行内标签 u i s b
内部文本多大自身就占多大
| 字符 | 功能 |
|---|---|
  | 空格 |
> | 大于号 |
< | 小于号 |
& | & |
¥ | ¥ |
® | 注册 |
© | 版权 |
div
块儿级标签
spen
行内标签
块儿级标签是可以通过CSS调整为不独占一行
标签之间很多时候可以嵌套
块儿级可以嵌套任何类型标签
行内标签只能嵌套行内标签
_self 在原来页面跳转_blank 新起一个页面跳转img 标签
图片标签
下面的两个属性都是用来快速定位需要操作的标签
id属性(一对一管理)
类似于身份证号 再同一个html页面上 id值不能重复
class属性 (批量管理)
类似于分组 多个标签可以拥有相同的class值
无序列表
<ul > 可以添加参数 type=”“ disc实心默认 circle 空心圆 square实心方块 nonne无样式
<li>pythonli>
<li>mysqlli>
<li>httmlli>
ul>
有序列表
<ol type="1" start="10"> #第一个参数 为序号样式 第二个为起始点
<li> 第一个li>
<li>第二个li>
<li>第三个li>
ol>
<table> #表格
<thead> 字段
<tr> 添加一行
<th>idth> 字段一 th相比td 粗一点
<th>nameth> 字段二
<th>pwdth> 字段三
tr>
thead>
<tbody> 数据
<tr> 添加一行数据
<td>001td> 字段一数据
<td>kktd> 字段二 数据
<td>123td> 字段三 数据
tr>
tbody>
table>
能够获取用户(输入、选择、上传)的数据并发送给后端服务器
form 表单 能完成上述操作的不仅仅只有它
<form action="" method="post">form>
action 属性
用于控制数据的提交地址 不写的话就是朝当前页面所在地址提交
method 控制数据提交的方式
**用户输入 账号密码 **
<p>账号:<input type="text">p>
<p>密码:<input type="password">p>
用户 日期选择
<p>birthday:<input type="date">p>
用户 邮箱填写 自动识别@
<p>emil:<input type="email">p>
单选(性别)
<p>
gender:
<input type="radio" name="gender"> 男
<input type="radio" name="gender"> 女
p>
多选
<p>hoby:
<input type="checkbox" name="hoby"> 唱
<input type="checkbox" name="hoby"> 跳
<input type="checkbox" name="hoby"> 篮球
p>
上传文件 单个或多个
上传单个文件
<p>file:
<input type="file">
p>
上传多个文件
<p> file:
<input type="file" multiple>
p>
下拉单选
<p>province:
<select name="" id="">
<option value=""> 上海option>
<option value=""> 浙江option>
<option value=""> 北京option>
select>
p>
下拉多选
<p>GF::
<select name="" id="" multiple>
<option value=""> kkoption>
<option value=""> mingoption>
<option value=""> hongoption>
<option value=""> gongoption>
select>
p>
大内容文本框
<p>
简介:
<textarea name="" id="" cols="30" rows="10">textarea>
p>
提交数据
<input type="submit" value="用户注册">
重置输入的内容
<input type="reset" value="重置内容">
无功能按钮
可以后期自己添加功能
<input type="button" name="无功能按钮">