zoukankan      html  css  js  c++  java
  • Python框架 :WEB框架

    一、概况

    WEB框架本质上,就是一个SOCKET Server

    WEB框架前面有WSGI或者是自己写的SOCKET,然后交给URL路由系统处理,然后交给某个函数或某个类,然后在模板里拿到模板然后模板和数据进行混合然后返回给用户!

    在Python中, WSGI (Web服务器网关接口)定义了Web服务器与Web应用(或Web框架)之间的标准接口。在WSGI的规范下,各种各样的Web服务器和Web框架都可以很好的交互。

    由于WSGI的存在,用Python中写一个简单的网络框架也变得非常容易然而,同很多其他的强大软件一样,要实现一个功能丰富,健壮高效的网络框架并非易事。如果您打算这么做,可能使用一个现成的Web框架(如 Django , Tornado , web.py 等)会是更合适的选择。

    二、案例

    首先,作为一个初步体验,我们可以借助 wsgiref.simple_server 来搭建一个简单无比(繁琐)的网络应用:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    from wsgiref.simple_server import make_server
    
    def RunServer(environ,start_response):
        start_response('200 OK',[('Content-Type','text/html')])
        return '<h1>Rain007</h1>'
    
    if __name__ == '__main__':
        httpd = make_server('',8000,RunServer)
        httpd.serve_forever()

    运行以上的脚本,打开浏览器,输入 http://127.0.0.1:8000/ 后可以看到:一行“Rain007” 。

    三、分解

    WSGI中规定:应用程序是一个 可调用对象 (可调用对象),它接受 environ 和 start_response两个参数,并返回一个 字符串迭代对象 。

    其中, 可调用对象 包括 函数 , 方法 ,  或者具有 __call__ 方法的 实例 ; environ 是一个字典对象,包括CGI风格的环境变量(CGI样式环境变量)和WSGI必需的变量(WSGI所需变量); start_response 是一个可调用对象,它接受两个 常规参数 (status,response_headers)和一个 默认参数 (exc_info); 字符串迭代 对象 可以是 字符串列表 , 生成器函数 或者具有 __iter__ 方法的可迭代实例更多细节参考 规范细节 。

  • 相关阅读:
    [HDOJ4417]Super Mario(归并树)
    [POJ2104] K-th Number(归并树,二分)
    2017北理校赛G题 人民的名义(FFT)
    [CF762C] Two Strings(预处理,二分答案)
    [CF798D] Mike and distribution(贪心,鸽笼原理,随机)
    [CF798C] Mike and gcd problem(规律,gcd)
    2017北理校赛H题 青蛙过河(线段树, dp, 离散化)
    [CF798B] Mike and strings(暴力)
    [CF798A] Mike and palindrome(水题,trick)
    [CCPC2017]湘潭邀请赛
  • 原文地址:https://www.cnblogs.com/rain007/p/7123894.html
Copyright © 2011-2022 走看看