web项目大致流程
python后端
服务器程序:socket
应用程序:python逻辑代码
前端
移动端:h5 ios
pc端:h4 h5
浏览器页面展示
html
css
js ---jquery框架
bootstrap框架
数据库
mysql
MongoDB
redis
oracle 等

原生socket实现简单的web项目
#server.py
import socket
server = socket.socket()
ip_port = (\'127.0.0.1\',8001)
server.bind(ip_port)
server.listen()
while True:
conn,add = server.accept()
client_msg = conn.recv(1024)
print(\'来自客户端的数据>>>\',client_msg)
conn.send(b\'HTTP/1.1 200 OK\r\n\r\n\')
conn.send(b\'<h1>welcome!30 hjdc!</h1>\')#html-标签--超文本标记语言 --经过浏览器解析(html标记语言的解析器) --对应效果
conn.close()
#浏览器输入::8001/
#页面返回:welcome!30 hjdc!
#pycharm返回:
来自客户端的数据>>> b\'GET / HTTP/1.1\r\nHost: 127.0.0.1:8001\r\nConnection: keep-alive\r\nCache-Control: max-age=0\r\nsec-ch-ua: " Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91"\r\nsec-ch-ua-mobile: ?0\r\nUpgrade-Insecure-Requests: 1\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\r\nSec-Fetch-Site: none\r\nSec-Fetch-Mode: navigate\r\nSec-Fetch-User: ?1\r\nSec-Fetch-Dest: document\r\nAccept-Encoding: gzip, deflate, br\r\nAccept-Language: zh-CN,zh;q=0.9\r\n\r\n\'
来自客户端的数据>>> b\'GET /favicon.ico HTTP/1.1\r\nHost: 127.0.0.1:8001\r\nConnection: keep-alive\r\nPragma: no-cache\r\nCache-Control: no-cache\r\nsec-ch-ua: " Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91"\r\nsec-ch-ua-mobile: ?0\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\r\nAccept: image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8\r\nSec-Fetch-Site: same-origin\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Dest: image\r\nReferer: :8001/\r\nAccept-Encoding: gzip, deflate, br\r\nAccept-Language: zh-CN,zh;q=0.9\r\n\r\n\'
import socket
server = socket.socket()
ip_port = (\'127.0.0.1\',8001)
server.bind(ip_port)
server.listen()
while True:
conn,add = server.accept()
client_msg = conn.recv(1024)
print(\'来自客户端的数据>>>\',client_msg)
conn.send(b\'HTTP/1.1 200 OK\r\n\r\n\')
#conn.send(b\'<h1>welcome!30 hjdc!</h1>\') #html-标签--超文本标记语言 --经过浏览器解析(html标记语言的解析器) --对应效果
with open(\'test.html\',\'rb\') as f:
data = f.read()
\'\'\'
调用mysql中的数据,给data添加上或者替换上mysql中的数据
\'\'\'
conn.send(data)
conn.close()
#test.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<h1>欢迎来到30期皇家赌场</h1>
请猛烈的点击这里<a href="http://www.baidu.com">有惊喜</a>
<body>
</body>
</html>
应用层 -- http、https相关协议
http协议请求
请求 GET / HTTP/1.1 ... 你的消息
响应 HTTP/1.1 200 ok\r\n\r\n\r\hello
html文档结构
参考链接:https://www.cnblogs.com/clschao/articles/10077261.html
head标签
<!DOCTYPE html>
<!--文档声明 H5 html-->
<html lang="en"> #表示语言,zh-CN是中文的意思,就是说,你这个文档的内容以中文为主,如果是以英文为主,就写出en
<head>
<meta charset="UTF-8"> <!--charset="UTF-8"标签属性 格式:属性名称=\'属性\'规定标签的一些格式,效果等-->
<title>Title</title>
<!--页面名称-->
</head>
<body>
<h1>xx</h1>
<!--全封闭标签-->
<img src="" alt=""> <!--自封闭标签-->
</body>
</html>
<meta content="30期皇家赌场,皇家赌场,皇家,"> #搜索引擎搜索的关键字
<meta content="30期皇家渡航xx有好多什么..视频供你看。。游戏。。"> #搜索引擎搜索时的描述内容
<!--2秒后跳转到对应的网址,注意引号-->
<meta http-equiv="refresh" content="2;URL=https://www.oldboyedu.com"> #如果把URL和后面的内容去掉,就是2秒钟刷新一次,这些内容了解一下就行
<!--指定文档的编码类型-->
<meta http-equiv="content-Type" charset=UTF8">
<!--告诉IE以最高级模式渲染文档-->
<meta http-equiv="x-ua-compatible" content="IE=edge"> #edge是微软的一个全新的浏览器,其实就是告诉IE浏览器,你按照最高标准来渲染我的页面,了解一下就可以啦
浏览器内核:
浏览器 -- 内核
IE
-- trident
chrome --- blink
火狐
--- gecko
Safari
--- webkit
PS:「浏览器内核」也就是浏览器所采用的「渲染引擎」,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。渲染引擎是兼容性问题出现的根本原因。
body中的基本标签
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
加粗
<b>加粗</b>
<i>斜体</i>
<br> #换行
<u>下划线</u>
<hr> #加一条横线
<s>删除</s>
<p>段落标签</p>
<h1>标题1</h1>
<h2>标题2</h2>
<h3>标题3</h3>
<h4>标题4</h4>
<h5>标题5</h5>
<h6>标题6</h6>
</body>
</html>