第一篇.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相关代码
前端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

posted @ 2019-03-07 15:27  王苗鲁  阅读(210)  评论(0编辑  收藏  举报