• django-1


    一、什么是web框架

    框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单的说就是你用别人搭建好的舞台来做表演。

    web应用的流程:

    #浏览器发送一个请求
    
    #服务器收到请求,生成一个HTML文档
    
    #服务器把HTML文档作为HTTP响应的Body发送给浏览器
    
    #浏览器收到HTTP响应,从HTTP Body取出HTML文档并显示

    二、自行开发一个Web Server框架

    对于所有的web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端。

     1 # -*- coding:utf-8 -*-
     2 # created by xuan
     3  
     4 import socket
     5  
     6  
     7 def main():
     8     sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     9     sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    10     sock.bind(('localhost', 8000))
    11     sock.listen(5)
    12  
    13     while True:
    14         # 等待浏览器访问
    15         conn, addr = sock.accept()
    16         # 接收浏览器发送来的请求内容
    17         data = conn.recv(1024)
    18         print(data)
    19  
    20         # 给浏览器返回内容
    21         conn.send(b"HTTP/1.1 200 OK
    Content-Type:text/html; charset=utf-8
    
    ")
    22         conn.send("电脑前的你长的真好看!".encode("utf-8"))
    23  
    24         # 关闭和浏览器创建的socket连接
    25         conn.close()
    26  
    27  
    28 if __name__ == "__main__":
    29     main()

    为什么学Django?

    Good question , 知Python者必知Django, 因为这可是Python语言里最流行&强大的Web框架,同时亦是全球第5大WEB框架,可快速构建稳定强大的WEB项目,大大提高开发效率,很多知名项目都是基于Django开发,如Disqus、Pinterest、Instagram、Bitbucket等, Django官方Slogan是The framework for perfectionist with deadline! 一个为完美主义者且又开发工期很紧的人设计的框架,事实确实如此,Django自身集成了丰富的WEB开发通用组件,如用户认证、分页、中间件、缓存、session等,可以避免浪费大量时间重复造轮子。

    Django来了

    创建一个django项目

    创建APP

    一个项目中会包含一个或多个子项目,每个项目实现不同的功能和服务,如微信里包含基本通信功能,还有支付、小程序等,每块业务都可以分为一个子项目。在django中, 我们管这个子项目叫app。下面是一个有多app的项目

    为了开发和维护方便,每个子项目(app)都会有一个独立文件夹来存放各自的业务代码。
    一般程序简单情况下,只需要创建一个app即可。

    HTTP请求本质

    上面的一次django请求都经历了哪些过程呢?我们来剖析下

    浏览器访问网站的本质:socket客户端、socket服务端之间的收发消息。

    流程:

    1. 【服务端】网站启动,并监听IP和端口,如:127.0.0.1:80,等待客户端来连接…

    2. 【客户端】浏览器中输入http://www.oldboyedu.com/index/,浏览器先后进行:

    1.   连接:域名解析得到网站IP,并根据端口进行连接。
    2.   发送消息:将请求数据发送给服务端,发送数据本质上是字符串

    3. 【服务端】接收用户请求发来的数据,并根据请求字符串解析,并做出响应。  

    4. 【客户端】接收服务端响应的内容,将响应体展示在浏览器上,响应头偷偷保存到浏览器。

    5. 【客户端】【服务端】连接断开,Http请求终止(体现了Http短连接)。  

  • 相关阅读:
    GDB 运行PYTHON 脚本+python 转换GDB调用栈到流程图
    GDB-Dashboard-GDB可视化界面
    使用gdb调试Python进程
    从底层理解Python的执行
    python 用pdb调试
    GDB反向调试 + 指令记录+函数历史记录
    linux 0.11 源码学习+ IO模型
    LINUX系统全部参数 sysctl -a + 网络参数设置
    Linux Kernel 排程機制介紹
    linux 系统调优2
  • 原文地址:https://www.cnblogs.com/letgo-doo/p/9053701.html
Copyright © 2020-2023  润新知