1. 三把利器
A:HTML---赤裸裸的人,自身带一些属性,大概20个标签。(其实就是一套规则,一套浏览器认识的规则)
B:开发者需要做的工作:
--学习HTML规则
-- 开发后台程序
1. 写HTML文件;(充当模板的作用)以后用replace替换,就可以开发成千上万的网页。
2.数据库获取数据,然后替换到HTML文件的指定位置,开发成千上万的网页。(用web框架就可以完成)
C:本地测试
-找到本地文件路径,直接浏览器打开即可。
-借助于pycharm打开测试
D:编写HTML文件
-doctype 定义了对应关系
HTML标签,只能有一个。标签内部可以写属性,
-注释 <!-- 注释的内容 -->
E: 标签分类
-自闭合标签(无需写结尾) <meta charset='utf-8'>
-人为主动闭合标签</title>老男孩</title>,大部分都属于这种。
CSS-----给这个人穿上华丽的衣服(颜色,位置) html+css 是写静态网页的基础
JS-------让这个人动起来。
2. http: 一次请求,一次响应,链接断开。一次请求,一次响应,链接断开。
3. localhost 知识扫盲
localhost
n. 本地主机;本地服务器
在计算机网络中,localhost意为"本地主机",指"这台计算机",是给回路网络接口(loopback)的一个标准主机名,
相对应的IP地址为127.0.0.1(IPv4)和[::1](IPv6)。
这个名称也是一个保留域名(RFC 2606) ,为了避免同狭义定义主机名混淆而单独列出。
在可用其他方式使用计算机主机名称的地方,可以指定主机为localhost。
例如,将web服务器上安装的web浏览器指向http://localhost,将会显示运行这个浏览器的计算机上所服务的网站的主页,
但是只有当web服务器配置至服务回路接口时才能显示。
4.做一个socket server,用浏览器进行访问。所有外部服务器的根源。
服务器端代码,先启动服务器端:
#socket server #超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。 #所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法 #'Http/1.1 200 OK'这是Http协议的响应信息。Http/1.1 表示当前协议为Http。1.1是协议的版本。200表示成功, OK不用说了吧。 import socket def handle_request(client): but=client.recv(1024) client.send(bytes('Http/1.1 200 OK ',encoding='utf-8')) client.send(bytes('Hello Seven',encoding='utf-8')) def main(): sock=socket.socket() sock.bind(('localhost',8000)) sock.listen(5) while True: conn,addr=sock.accept() handle_request(conn) conn.close() if __name__=='__main__': main()
本机浏览器localhost作为客户端,去链接服务器端。
![](https://images2017.cnblogs.com/blog/1200823/201708/1200823-20170819085538209-472558656.png)
5.稍加修饰,效果非凡
服务器端:
import socket def handle_request(client): but=client.recv(1024) client.send(bytes('Http/1.1 200 OK ',encoding='utf-8')) client.send(bytes("<h1 style='background-color:red;'>Hello Seven<h1>",encoding='utf-8')) def main(): sock=socket.socket() sock.bind(('localhost',8000)) sock.listen(5) while True: conn,addr=sock.accept() handle_request(conn) conn.close() if __name__=='__main__': main()
客户端效果:
6.谨记
1.服务器端返回的数据永远只是一个字符串。
2.服务器端返回的字符串里面,如果有一大堆格式的话,同时浏览器恰好也认识这些格式的话,浏览器就帮我把它们显示出来了。
把要返回的数据写到一个index文件里面,这样就可以大批量写了。
为了规范,把文件保存成.html结尾的文件。
import socket def handle_request(client): but=client.recv(1024) client.send(bytes('Http/1.1 200 OK ',encoding='utf-8')) f=open('index','rb') data=f.read() f.close client.send(data) def main(): sock=socket.socket() sock.bind(('localhost',8000)) sock.listen(5) while True: conn,addr=sock.accept() handle_request(conn) conn.close() if __name__=='__main__': main()
index文件里面的代码:
<h1 style='background-color:red;'>Hello Eight<h1>
运行结果:
7.牛刀小试
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Title</title> </head> <body> <a href="http://www.oldboyedu.com">老男孩</a> </body> </html>
右击代码,用浏览器打开: