web框架学习心得
web框架学习心得
首先学习之前明确这些内容
对于事物本质的探究和学习从两个方面:
一是明确事物的属性和变化
二是明确影响事物的原因和推论,也就是输入和输出。
一、web本质
1、web本质为socket服务和客户端的字符串的交互。
2、web框架基本结构
socket | 业务逻辑处理
3、主流web框架介绍
自带socket tornado
需要引用wsgiref 不自带socket dajango flask
工作流程: url到socket socket处理后将基本(url,请求等等)发送给框架/业务逻辑处理
4、简易框架介绍
url到socket socket处理后将基本(url,请求等等)发送给框架/业务逻辑处理,
在url的请求网址中 匹配到 服务器的存储信息,根据业务逻辑判断 返回结果 发送给socket 再处理 然后发出
5、简易web本质模拟
#!/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()
6、简易web框架模拟
#!/usr/bin/env python
#coding:utf-8
from wsgiref.simple_server import make_server
def RunServer(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/html')])
return '<h1>Hello, web!</h1>'
if __name__ == '__main__':
httpd = make_server('', 8000, RunServer)
print "Serving HTTP on port 8000..."
httpd.serve_forever()
7、自定义web框架
#!/usr/bin/env python
#coding:utf-8
from wsgiref.simple_server import make_server
def index():
return 'index'
def login():
return 'login'
def routers():
urlpatterns = (
('/index/',index),
('/login/',login),
)
return urlpatterns
def RunServer(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/html')])
url = environ['PATH_INFO']
urlpatterns = routers()
func = None
for item in urlpatterns:
if item[0] == url:
func = item[1]
break
if func:
return func()
else:
return '404 not found'
if __name__ == '__main__':
httpd = make_server('', 8000, RunServer)
print "Serving HTTP on port 8000..."
httpd.serve_forever()
8、框架的常见结构
自身具有逻辑处理功能,入口函数,(主要对接socket)。对用户函数,配置数据(字典或是文件),指定函数(用户功能)。
浙公网安备 33010602011771号