第一篇.web应用
一.WEB应用程序是什么
Web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,
用户只需要有浏览器即可,不需要再安装其他软件。 应用程序有两种模式C/S、B/S。C/S是客户端/服务器端程序,也就是说这类程序一般独立运行。 而B/S就是浏览器端/服务器端应用程序,这类应用程序一般借助IE等浏览器来运行。WEB应用程
序一般是B/S模式。Web应用程序首先是“应用程序”,和用标准的程序语言,如C、C++等编写出
来的程序没有什么本质上的不同。然而Web应用程序又有自己独特的地方,就是它是基于Web的,
而不是采用传统方法运行的。换句话说,它是典型的浏览器/服务器架构的产物。
二.基于socket写一个web应用
import socket PORT = 8801 server = socket.socket() server.bind(('127.0.0.1', PORT)) server.listen(5) print("服务端启动:http://127.0.0.1:%s" % PORT) # 1.浏览器采用http协议方式发生请求 while True: browser, _ = server.accept() data = browser.recv(1024).decode('utf-8') print(data) # 要遵循http协议返回数据:响应行(必须) 响应头 响应体 # browser.send(b'hello world') # 浏览器报错:127.0.0.1 发送的响应无效。 browser.send(b'HTTP/1.1 200 OK\r\n') # 响应行(必须),以\r\n结束 browser.send(b'Content-type:text/html\r\n') # 响应头(可选),服务于响应体 browser.send(b'\r\n') # 响应规则与响应体内容之间还需要一个\r\n标识分割 browser.send(b'normal msg') # 响应体(可选) browser.send(b'<h1>hello world</h1>') # 响应体(可选) browser.close() #请求响应完毕后会立即断开连接,无连接 ''' GET / HTTP/1.1 Host: 127.0.0.1:8801 Connection: keep-alive Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9 Cookie: csrftoken=mrUWWpsEVAB6O870C4eiDD90O6roBaw0NUAQ8wlqtjxk0Bso11NagbpAFjddKERS; sessionid=0x2bad1trn8jg1u897xflgqdrhh5gt0o '''
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>测试请求</title> </head> <body> <div>GET</div> <form action="http://127.0.0.1:8801" method="GET"> <input type="text" name="get_usr"> <input type="submit" value="get提交"> </form> <div>POST</div> <form action="http://127.0.0.1:8801" method="POST"> <input type="text" name="post_usr"> <input type="submit" value="post提交"> </form> </body> </html> 前端html相关代码
# 响应行 响应头 响应体 HTTP/1.1 200 OK\r\n #响应行 Content-type:text/html\r\n #响应头 响应头的作用决定响应体能发送什么数据回去 \r\n Login Success #响应体
请求行: GET|POST(请求方式) /(请求路径) HTTP/1.1(http协议版本)
请求头:(了解)
请求体:GET 请求体放在请求路径后进行拼接 POST会在请求行与请求头结束后,以数据包方式单独发送
三.django请求生命周期
1.浏览器发送请求 2.wsgi服务器接收到请求,将请求解析交给Django 3.Django中间件过滤请求信息,交给路由 # 'django.middleware.csrf.CsrfViewMiddleware',#cookie是客户端,session是服务器端,注释掉中间件是因为post请求过不去 4.路由完成业务逻辑的分发,到指定app下views中指定的视图函数 5.视图函数完成具体的业务逻辑,返回响应结果 6.将处理结果通过服务器返回给浏览器
四.图书管理表作业设置
pass