简易web框架

socket简单示例:

from socket import *
server = socket(AF_INET,SOCK_STREAM)
server.bind(('127.0.0.1',8888))
server.listen(5)
while True:
    conn,addr = server.accpet()
    data = conn.recv(8096)
    print(data)
    conn.send(b'HTTP/1.1 200 OK\r\n\r\n<h1>o98k<h1>')
    conn.close()

不同路径返回不同的内容

from socket import *
server = socket(AF_INET,SOCK_STREAM)
server.bind((127.0.0.1',8888))
server.listen()
while True:
    conn,addr = server.accept()
    data = conn.recv(1024)
    data_str = str(data,encoding='utf-8')
    url = data_str.split('\r\n')[0].split(' ')[1]
    print(url)
    if url == 'home':
    msg = b'<h1>home page<h1>'
    elif url == '/index/'
    msg = b'<h1>index page<h1>'
    else:
    msg = b'<h1>404<h1>'
    conn.send(b'HTTP/1.1 200 OK \r\n')
    conn.send(msg)
    conn.close() 

不同路径返回不同的内容升级版

from socket import *
server = socket(AF_INET,SOCK_STREAM)
server.bind((127.0.0.1',8888))
server.listen()

def home(url):
    return b'<h1>home page</h1>'

def index(url):
    return b'<h1>index page</h1>'

while True:
    conn,addr = server.accept()
    data = conn.recv(1024)
    data_str = str(data,encoding='utf-8')
    url = data_str.split('\r\n')[0].split(' ')[1]
    print(url)
    if url == 'home':
    msg = home(url)
    elif url == '/index/'
    msg = index(url)
    else:
    msg = b'<h1>404<h1>'
    conn.send(b'HTTP/1.1 200 OK \r\n')
    conn.send(msg)
    conn.close() 

返回具体的url文件

from socket import *
server = socket(AF_INET,SOCK_STREAM)
server.bind(('127.0.0.1',8888))

def home(url):
    s = 'this is {} page'.format(url)
    return bytes(s,encoding='utf8')
def index(url)
    return b'<h1>index page</h1>'
def user(url):
    return b'hehe'
def login(url):
    with open('login.html','rb') as f:
    return f.read()
url2func = [
    ("/index/", index),
    ("/home/", home),
    ("/user/", user),
    ("/login/", login), ]
while True:
    conn,addr = server.accept()
    data = conn.recv(1024)
    data_str = str(data,encoding='utf8')
    url = data_str.split('\r\n')[0].split('')[1]
    print(url)
    func = None
    for i in url2func:
        if url == i[0]:
             func = i[1] 
    break 
    else:
        func = None   
    if func:
        msg = func(url)  
    else:
        msg = b'<h1>404</h1>'
    conn.send(b'HTTP/1.1 200 OK\r\n\r\n')  
    conn.send(msg)   
    conn.close()

猜你喜欢

转载自www.cnblogs.com/guanzhicheng/p/9169206.html