• Python学习---Python的框架基础学习


    框架基础

    框架实质:

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

    B/S结构的响应:

    import socket
    def handle_request(client):
        buf = client.recv(1024)
        client.send("HTTP/1.1 200 OK
    
    ".encode("utf8"))
        client.send("<h1 style='color:red'>Hello, yuan</h1>".encode("utf8"))
    def main():
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sock.bind(('localhost',8001))
        sock.listen(5)
        while True:
            connection, address = sock.accept()
            handle_request(connection)
            connection.close()
    if __name__ == '__main__':
        main()
    

    WSGI: web server gateway interface

    1.封装了socket对象以及准备过程[socket创建,bind, listen]

    2.通过version,将所有的请求对象进行了封装,键值对通过字典的形式封装,通过key可以获取value

    3.通过start_response()可以很方便的设置response响应头

    常识:

    请求分为请求头和请求体

    如果是get请求: 数据包装在url里面,不需要请求体,只有请求头

    如果是post请求: 数据包装在请求体里面

    注意: 请求头和请求体通过2个换行符分隔

    from wsgiref.simple_server import make_server
    
    // application()函数必须由WSGI服务器来调用,因为我们本身无法传递实参给函数,实参是内部封装的。
    def application(environ, start_response):
        start_response('200 OK', [('Content-Type', 'text/html')])
        return [b'<h1>Hello, web!</h1>']
    
    httpd = make_server('', 8080, application)
    print('Serving HTTP on port 8000...')
    # 开始监听HTTP请求:
    httpd.serve_forever()
    

    MVC &&MTV

    MVC就是把web应用分为模型(M),控制器(C),视图(V)三层;他们之间以一种插件似的,松耦合的方式连接在一起。

    模型负责业务对象与数据库的对象(ORM),视图负责与用户的交互(页面),控制器(C)接受用户的输入调用模型和视图完成用户的请求。

    Django的MTV模式本质上与MVC模式没有什么差别,也是各组件之间为了保持松耦合关系,只是定义上有些许不同,Django的MTV分别代表:

           Model(模型):负责业务对象与数据库的对象(ORM)

           Template(模版):负责如何把页面展示给用户(存储HTML文件)

           View(视图):负责业务逻辑,并在适当的时候调用Model和Template(类似MVC中的Conrtoller)

           此外,Django还有一个url分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template

  • 相关阅读:
    python 玩转列表list
    Python入门之_水仙花数
    自兴人工智能 字符串
    自兴人工智能 元组
    自兴人工智能 列表
    自兴人工智能 python特点了解
    python走迷宫
    (自兴人工智能) python 元组
    (自兴人工智能) 玩转 python 字符串
    (自兴人工智能)Python 列表(List)的灵活使用
  • 原文地址:https://www.cnblogs.com/ftl1012/p/9397600.html
Copyright © 2020-2023  润新知