python自定义html_python【第十篇】自定义Web框架

socket

socket服务器

import socket

sock = socket.socket()

sock.bind(('127.0.0.1', 8080))

sock.listen(5)

while True:

conn, addr = sock.accept()

data = conn.recv(1024) # data为浏览器的请求(请求头+请求体)内容,类型为type(data)=bytes

conn.send(b"HTTP/1.1 200 OK\r\n\r\n")

conn.send(b'hy')

conn.close()

浏览器访问

浏览器本质是一个socket客户端

访问地址

http://127.0.0.1:8080/

请求内容(字符数为612即612字节,因此服务器一次取1024字节足够)

GET / HTTP/1.1\r\n

Host: 127.0.0.1:8080\r\n

Connection: keep-alive\r\n

Pragma: no-cache\r\n

Cache-Control: no-cache\r\n

Upgrade-Insecure-Requests: 1\r\n

User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36\r\n

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\r\n

Accept-Encoding: gzip, deflate, br\r\n

Accept-Language: zh-CN,zh;q=0.9\r\n

Cookie: csrftoken=AmccoQlhzf9At4YXw6RGDVej7TcOCMzwvl4oR3ElSKtxlFBEBInIPSiFKGITHfrm; sessionid=elt65r87yocl51g4uiychxp46yhcyxxl; _xsrf=2|29287a7d|f4dbadc68470be9c84269330a453a416|1512198017\r\n\r\n

集成路由系统

版本一

import socket

sock = socket.socket()

sock.bind(('127.0.0.1', 8080))

sock.listen(5)

while True:

conn, addr = sock.accept()

data = conn.recv(1024)

data = str(data, encoding='utf-8')

headers, bodys = data.split('\r\n\r\n')

print(bodys)

temp_list = headers.split('\r\n')

method, url, protocal = temp_list[0].split(' ')

conn.send(b"HTTP/1.1 200 OK\r\n\r\n")

if url == '/':

conn.send(b'welcome')

else:

conn.send(b'

404 not found

')

conn.close()

版本二

import socket

def f1(request):

return b'welcome'

routers = [

('/', f1),

]

sock = socket.socket()

sock.bind(('127.0.0.1', 8080))

sock.listen(5)

while True:

conn, addr = sock.accept()

data = conn.recv(8096)

data = str(data, encoding='utf-8')

print(data)

headers, bodys = data.split('\r\n\r\n')

temp_list = headers.split('\r\n')

method, url, protocal = temp_list[0].split(' ')

conn.send(b"HTTP/1.1 200 OK\r\n\r\n")

func_name = None

for item in routers:

if item[0] == url:

func_name = item[1]

break

if func_name:

response = func_name(data)

else:

response = b"

404 not found

"

conn.send(response)

conn.close()

集成模板系统

版本一:静态模板

用户登录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值