路飞学城Python-Day75

1.什么是Django?
Django是一个web框架,也是python中最火的一个框架,应用最多,内容最全
2.什么是web框架?
python的一个脚本就是一个应用程序,web框架就是和前端有关系的
Web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件。应用程序有两种模式C/S、B/S。C/S是客户端/服务器端程序,也就是说这类程序一般独立运行。而B/S就是浏览器端/服务器端应用程序,这类应用程序一般借助谷歌,火狐等浏览器来运行。WEB应用程序一般是B/S模式。Web应用程序首先是“应用程序”,和用标准的程序语言,如java,python等编写出来的程序没有什么本质上的不同。在网络编程的意义下,浏览器是一个socket客户端,服务器是一个socket服务端
03-web应用程序2
import socket

sock = socket.socket()
sock.bind(('127.0.0.1', 8800))
sock.listen(5)

while 1:
    print("server waiting..")
    conn, addr = sock.accept()
    data = conn.recv(1024)
    print("data", data)
    conn.send(b"HTTP/1.1 200 OK\r\n\r\n<h1>hello luffycity!</h1>")
    conn.close()
简易web应用
如果在字符串中加上HTML的标签,浏览器就会解析并按照标签的形式展示出来
浏览器就是加载这个标签与语言
谷歌浏览器的检查中的Network就是浏览器记录的各种请求的网络信息

Response是从客户端接收的一堆字符串(响应体,页面上看到的其实是浏览器加载的东西)
Preview其实是浏览器拿到的解析的东西
我们看到的页面其实是浏览器解释好的标签
文件操作的时候一定要读字节的形式
# coding:utf-8
import socket

sock = socket.socket()
sock.bind(('127.0.0.1', 8800))
sock.listen(5)

while 1:
    print("server waiting..")
    conn, addr = sock.accept()
    data = conn.recv(1024)
    print("data", data)
    # 读取文件html的内容
    with open("index.html", 'r', encoding='utf-8') as f:
         tex = f.read()
    conn.send(("HTTP/1.1 200 OK\r\n\r\n%s" % tex).encode('utf-8'))
    conn.close()
View Code
# coding:utf-8
import socket

sock = socket.socket()
sock.bind(('127.0.0.1', 8800))
sock.listen(5)

while 1:
    print("server waiting..")
    conn, addr = sock.accept()
    data = conn.recv(1024)
    print("data", data)
    # 读取文件html的内容
    with open("index.html", 'r', encoding='utf-8') as f:
         tex = f.read()
    conn.send(("HTTP/1.1 200 OK\r\n\r\n%s" % tex).encode('utf-8'))
    conn.close()
View Code

04-http请求协议1
http协议是由两部分构成的,请求协议和响应协议,请求协议就是客户端给服务端发送的格式,响应协议就是服务端给客户端发送的格式
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于万维网(WWW:World Wide Web )服务器与本地浏览器之间传输超文本的传送协议。
HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。
请求格式

请求方式: get与post请求

  • GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditBook?name=test1&id=123456. POST方法是把提交的数据放在HTTP包的请求体中.
  • GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.
  • GET与POST请求在服务端获取请求数据方式不同。
  • ps:get请求一般用于查询操作,post请求一般用于数据库的更改的时候使用
请求头、请求首行、请求体都是在告诉服务器这一次客户端登陆的信息情况
host是服务端的主机信息
connection就是链接的状态
content-type就是指明请求的数据头的部分的
content-length就是发送的字节数,标明这次发送的字节数
服务端如何区分请求头和请求体呢?
浏览器浏览数据就是在向服务器发送一堆字符串(有编码个解码的过程),实际上就是给服务器发送报文
服务器就是利用换行符去区分请求首行和请求体的内容
get请求没有请求体,会放在url之后
post请求才有请求体
05-http请求协议2
post请求形式
# coding:utf-8
import socket

sock = socket.socket()
sock.bind(('127.0.0.1', 8800))
sock.listen(5)

while 1:
    print("server waiting..")
    conn, addr = sock.accept()
    data = conn.recv(1024)
    print("data", data)
    # 读取文件html的内容
    with open("login.html", 'r', encoding='utf-8') as f:
         tex = f.read()
    conn.send(("HTTP/1.1 200 OK\r\n\r\n%s" % tex).encode('utf-8'))
    conn.close()
View Code
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>login</title>
</head>
<body>
<form action="http://127.0.0.1:8800" method="post">
    用户名<input type="text" name="user" />
    密码<input type="password" name="pwd" />
    <input type="submit" />

</form>
</body>
</html>
View Code

猜你喜欢

转载自www.cnblogs.com/pandaboy1123/p/9644385.html
今日推荐