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\r\n\r\n'.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框架。

posted @ 2019-09-06 16:31  Kwan、C  阅读(357)  评论(0编辑  收藏  举报