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)。对用户函数,配置数据(字典或是文件),指定函数(用户功能)。

posted on 2016-12-23 09:13  lexn  阅读(42)  评论(0)    收藏  举报

导航