Web框架本质
众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端。
-
详细阅读(http://www.cnblogs.com/wupeiqi/articles/5237672.html)
新建以下目录: s1.py(用Python2解析器):
#!/usr/bin/env python
# coding:utf-8
import socket
def handle_request(client):
buf = client.recv(1024)
client.send("HTTP/1.1 200 OK\r\n\r\n")
client.send("Hello, Seven")
def main():
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind(('localhost', 8000))
sock.listen(5)
while True:
connection, address = sock.accept()
handle_request(connection)
connection.close()
if __name__ == '__main__':
main()
- s2.py(用Python2解析器):
# -*- coding:utf-8 -*-
from wsgiref.simple_server import make_server
def RunServer(environ, start_response):
# environ 客户的发来的所有数据
# start_response 封装要返回给用户的数据,响应头状态
start_response('200 OK', [('Content-Type', 'text/html')])
# 返回的内容
return [bytes('<h1>Hello, web!</h1>', encoding='utf-8'), ]
if __name__ == '__main__':
httpd = make_server('', 8000, RunServer)
print("Serving HTTP on port 8000...")
httpd.serve_forever()
-
新建s3.py目录如下(Python3环境运行):
s3.py代码如下:
# -*- coding:utf-8 -*-
from wsgiref.simple_server import make_server
def RunServer(environ, start_response):
# environ 客户的发来的所有数据
# start_response 封装要返回给用户的数据,响应头状态
start_response('200 OK', [('Content-Type', 'text/html')])
# 返回的内容
return [bytes('<h1>Hello, web!</h1>', encoding='utf-8'), ]
if __name__ == '__main__':
httpd = make_server('', 8000, RunServer)
print("Serving HTTP on port 8000...")
httpd.serve_forever()
运行s3.py文件如图:
在浏览器输入(http://127.0.0.1:8000/)显示如下:
3、WEB框架
MVC
Model View Controller
数据库 模板文件 业务处理
MTV
Model Template View
数据库 模板文件 业务处理
############## WEB:MVC、MTV