#web开发
#模拟服务器的反应流程
import socket
sock = socket.socket()
sock.bind(("127.0.0.1",8800)) #别人来访问你的计算机
sock.listen(5)
while 1: #循环过程
conn,ddr = sock.accept() #web请求基于http访
data = conn.recv(1024) #各种数据,固定返回的数据
print('data',data)
conn.send(b"HTTP/1.1 200 OK\r\n\r\nhello luffycity!")
conn.close()
请求协议
请求格式有哪些
请求头
post 方法 /form/entry URL HTTP/1.1 协议版本
Host:hackr.jp
Connection:keep-alive
Content-Type:application/x-www-form-urlencoded
Content-Length:16
请求体
name=ueno&age = 37
请求方式。get请求没有请求体,提交的数据放在url后面, 只有post请求才会在请求体内容显示信息。
get提交的数据大小有限,post方法提交的数据没有限制。
http的响应协议
HTTP/1.1 协议版本 200状态码 OK 状态码原因短语
Date: Tue, 10 Jul 2012 12:41:23 GMT 相应首行字段
Content-Length:
Content-Type:text/html
1xx请求正在处理,2xx成功处理,3xx重定向,需要附加操作,4xx请求资源找不到,5xx内容错误,服务器代码错误,服务器处理出错。
1.按照http协议解析数据2.按照http响应协议封装数据
import wsgiref
浏览器会默认发出一个请求,得到一个数据。
web框架: yuan功能总结
1.urls.py:路径与视图函数映射关系, ---url控制器
2.views.py 视图函数,固定有一个形式参数。 environ
3.templates文件夹;html文件。模板部分
models:在项目启动前,在数据库中创建表结构的。 与数据库相关联。
main.py 启动文件,封装socket
如何将data里面的字符串解析出来成为一个好的格式,按照http格式解析的方式,
wsgiref模块,用来解析data里面的数据。
from wsgiref.simple_server import make_server
def application(environ,start_response):
#按照http协议解析数据:envirion
#按照http协议组装数据:start_response
make_server("",8090) #将socket.bind('127.0.0.1',8090)封装
httped=make_server("",8090,applicaiton)
http.server_forever() #等待用户连接。
return [b'<h1>hello web</h1>']
返回的是一个字典/