• Django之web应用与web框架


    Django之web应用与web框架

    Django框架,师从yuanchenqi,内容摘自其博客和luffybook。

    一、web应用

    web应用程序时一种可以通过web访问的应用程序,程序的最大好处时用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其它软件。应用程序有两种模式——C/S、B/S。C/S时客户端/服务器端程序,也就是说这类程序一般独立运行。而B/S就是浏览器端/服务器端应用程序,这类应用程序一般借助谷歌,火狐等历览器来运行。web应用程序一般时B/S模式。web应用程序首先是“应用程序”,和用标准的程序语言,如java,python等编写出来的程序没有什么本质上的不同。再网络编程的意义下,浏览器是一个socket客户端,服务器是一个socket服务端。

    import socket
    
    def handle_request(client):
        request_data = client.recv(1024)
        print('request_data: ', request_data)
        client.send('HTTP/1.1 200 OK
    
    '.encode('utf-8'))
        client.send("<h1 style = 'color:red'>Hello world!</h1>".encode('utf-8'))
    
    def main():
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sock.bind(('localhost', 8800))
        sock.listen(5)
    
        while True:
            print('The server is waiting for client-connection')
            connection, address = sock.accept()
            handle_request(connection)
            connection.close()
    
    if __name__ == '__main__':
        main()
    

    二、web框架

    web框架(web framework)是一种开发框架,用来支持动态网站、网络应用和网络服务的开发。这大多数的web框架提供了一套开发和部署网站的方式,也为web行为提供了一套通用的方法。web框架已经实现了很多功能,开发人员使用框架提供的方法完成自己的业务逻辑,就能快速开发web应用了。浏览器和服务器时基于HTTP协议进行通信的。也可以说web框架就是再以上十几行代码基础上扩展出来的,有很多简单方便使用的方法,大大提高了开发的效率。

    三、wsgiref模块

    最简单的web应用就是先把HTML用文件保存好,用一个现成的HTTP服务器软件,接收用户的请求,从文件中读取HTML,返回。

    如果要动态生成HTML,就需要把上述步骤自己来实现。不过,接收HTTP请求、解析HTTP请求、发送HTTP响应都是苦力活,如果我们自己来写这些底层代码,还没开始写动态HTML就得花个把月去读HTTP规范。

    正确的做法是底层代码由专门的服务器软件实现,我们哦那个python专注于生成HTML文档。因为我们不希望接触到TCP连接、HTTP原始请求和响应格式,让我们专心用python编写web业务。这个接口就是WSGI:Web Server Gateway Interface。而wsgiref模块就是python基于WSGI协议开发的服务模块。

    from wsgiref.simple_server import make_server
    
    
    def application(environ, start_response):
        start_response('200 OK', [('Content-Type', 'text/html')])
        return [b'<h1>Hello, world!</h1>']
    
    httpd = make_server('', 8080, application)
    
    print('Serving HTTP on port 8000...')
    # 开始监听HTTP请求:
    httpd.serve_forever()
    

    从本质上讲,这个文件就可以称为一个web框架。

  • 相关阅读:
    debian8 vga 文本模式下出现闪屏
    Delphi中根据分类数据生成树形结构的最优方法
    SQL获取每月、每季度、每年的最后一天记录
    Delphi实现树型结构
    Delphi中initialization和finalization
    Delphi 连接 Paradox
    delphi2007单个文件(pas)的控件安装
    Delphi安装*.pas扩展名的控件
    数据库组件介绍(Delphi)
    Delphi控件开发浅入深出(三)
  • 原文地址:https://www.cnblogs.com/Kwan-C/p/11459216.html
Copyright © 2020-2023  润新知