Django入门篇

Posted liu--huan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django入门篇相关的知识,希望对你有一定的参考价值。

基于 socket 的 Web 应用

本质上:浏览器是一个socket客户端,服务器是一个socket服务端

技术分享图片
import socket

soc   = socket.socket( )
soc.bind(( 127.0.0.1,8001 ))
soc.listen(5)

while True:
    so ,addr = soc.accept()
    data = so.recv(1024)
    so.send(bHTTP/1.1 200 OK
Content-Type:text/html

)
    # so.send(b‘sadf‘)

    print(data)
    data = str(data,encoding="utf-8")

    position = data.split(
)[0].split( )[1]

    if /index == position:
        with open(index.html,rb) as f:
            da = f.read()
        so.send(da)
    else:
        so.send(b404)
py文件
技术分享图片
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>index</h1>
<h2>dafdasdf</h2>
<img
        src="https://gss0.bdstatic.com/-4o3dSag_xI4khGkpoWK1HF6hhy/baike/c0%3Dbaike92%2C5%2C5%2C92%2C30/sign=775f519ac08065386fe7ac41f6b4ca21/fd039245d688d43f63d84526771ed21b0ff43bf5.jpg">
</body>
</html>
html文件

 http协议特性

-特点:1 基于TCP/IP协议之上的应用层协议
2 基于请求-响应模式(请求必定由客户端发送,服务端回复响应)
3 无状态保存(HTTP是一种不保存状态,级别,协议对于发送过的请求或响应都不做持久化处理。)
4 无连接(每次只处理一个请求,收到客户端应答后,即断开链接)

(4)无连接

无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

 

 

http请求协议与响应协议

http协议包含由浏览器发送数据到服务器需要遵循的请求协议与服务器发送数据到浏览器需要遵循的请求协议。用于HTTP协议交互的信被为HTTP报文。请求端(客户端)的HTTP报文 做请求报文,响应端(服务器端)的 做响应报文。HTTP报文本身是由多行数据构成的字 文本。

技术分享图片

 

请求协议

技术分享图片

请求方式: get与post请求

  • GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditBook?name=test1&id=123456. POST方法是把提交的数据放在HTTP包的请求体中.
  • GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.
  • GET与POST请求在服务端获取请求数据方式不同。
技术分享图片
GET请求
    # 请求首行
    GET / HTTP/1.1

    # get请求后面的参数
    GET /?name=lqz&age=18 HTTP/1.1

    # 请求头
    Host: 127.0.0.1:8008

    Connection: keep-alive

    Cache-Control: max-age=0

    Upgrade-Insecure-Requests: 1

    User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 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=7xx6BxQDJ6KB0PM7qS8uTA892ACtooNbnnF4LDwlYk1Y7S7nTS81FBqwruizHsxF

    # 请求体(get请求,请求体为空)    
    
    


    POST请求
    # 请求首行
    POST /?name=lqz&age=18 HTTP/1.1

    # 请求头
    Host: 127.0.0.1:8008
Connection: keep-alive
Content-Length: 21
Cache-Control: max-age=0
Origin: http://127.0.0.1:8008
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer: http://127.0.0.1:8008/?name=lqz&age=18
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: csrftoken=7xx6BxQDJ6KB0PM7qS8uTA892ACtooNbnnF4LDwlYk1Y7S7nTS81FBqwruizHsxF


    # 请求体
    name=lqz&password=123
GET请求 & POST请求

 

响应协议

技术分享图片

技术分享图片

技术分享图片

 

 

 

 URL简介

统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。

格式:

  协议://IP:端口(80)/路径?name=lqz&age=18

?之前的是请求路径,?之后的是请求数据部分

 




以上是关于Django入门篇的主要内容,如果未能解决你的问题,请参考以下文章

Django入门篇

Python+django建站入门篇:素数判断

python应用篇之Web应用程序——Django入门(中)

Django入门与实践课程系列第1篇

Django入门与实践课程系列第2篇

如何在 Django Summernote 中显示编程片段的代码块?