• webpy


    url处理
    对于一个站点来说,URL 的组织是最重要的一个部分,因为这是用户看得到的部分,而且直接影响到站点是如何工作的,在著名的站点如:del.icio.us ,其URLs 甚至是网页界面的一部分。而web.py 以简单的方式就能够构造出一个强大的URLs。
    在每个web.py 应用,必须先import web 模块:
    import web
    现在,我们须要告诉web.py URL 如何组织,让我们以一个简单例子开始:
    urls = (
    '/', 'index' )
    在上面的例子中,第一部分(‘/’)是一个匹配URL 的正则表达式,像/,/help/faq,/item/(d+),等等;第二部分(‘index’)是一个类名,匹配的请求将会被发送过去。
    现在,我们需要编写index 类。当大部人浏览网页的时候,他们都没有注意到,浏览器是通过HTTP 跟World Wide Web 通信的。通信的细节不太重要,但要明白一点,用户是通过URLs(例如 / 或者 /foo?f=1)来请求web 服务器完成一定请求的(例如 GET 或者POST)。
    GET 是最普遍的方法,用来请求一个页面。当我们在浏览器里输入“harvard.edu” 的时候,实际上它是向Web 服务器请求GET ”/“。另一个常见的方法是POST,常用于提交特定类型的表单,例如利用信用卡付费和处理一个订单。注意,GET URLs 能够被搜索引擎索引得到(想像一下Google 尝试购买你网站上的所用物品)。
    在我们的web.py 代码中。我们清晰区分这两种方法:
    class index:
    def GET(self):
    print "Hello, world!"
    当接收到一个GET 请求时,上面的GET 方法将会被web.py 调用。
    好的。现在,我们只需添加最后一行代码,让web.py 启动网页应用:
    if __name__ == "__main__": web.run(urls, globals())
    上面告诉web.py 如何配置URLs,以及找寻的类在文件中的全局命名空间。
    整个code.py 文件的内容如下:
    import web
    urls = (
    '/', 'index' )
    class index:
    def GET(self):
    print "Hello, world!"
    if __name__ == "__main__": web.run(urls, globals())
    注意到没有,虽然我说了很多东西,但实际上web 应用的代码就只得上面的几行,而且这是一个完整的web.py 应用。在你的命令行下输入:
    $ python code.py
    Launching server: http://0.0.0.0:8080/
    现在,你的web.py 应用已经启动了服务器。通过浏览器访问http://localhost:8080/ 的话,会见到”Hello, world!“。在启动服务器的时候,你可以在python code.py 后面添加IP 地址/端口 来控制web.py 启动的服务器。例如:python code.py 8888。

    3调试编辑

    web.py 本身也提供调试的工具。在最后的“if name …” 代码前面添加:
    web.webapi.internalerror = web.debugerror
    并在最后的“if name …” 添加”web.reloader“:
    if __name__ == "__main__": web.run(urls, globals(), web.reloader)
    上面的代码会使你在调试的阶段得到更多有用的信息。web.reloader 其实是一个中间件,当你在运行时修改了code.py 文件后,web.reloader 会重新加载code.py 文件,让你在浏览器上立刻可以看到变化。如何有多何变化的话,还是需要重新启动服务器。web.py 也提供web.profiler ,可以输出有用的信息,有关每个页面的每个函数调用的次数,这用助于你改善代码。
    web.py 的确相当的小巧,应当归属于轻量级的web 框架。但这并不影响web.py 的强大,而且使用起来很简单、很直接。在实际应用上,web.py 更多的是学术上的价值,因为你可以看到更多web 应用的底层,这在当今“抽象得很好”的web 框架上是学不到的 :) 如果想了解更多web.py,可以访问web.py 的官方文档。

    4开发编辑

    web.py 内置了web服务器。可以按照 tutorial 学习如何写一个Web应用。 写完后,将你的代码放到 code.py 并如下面的方法来启动服务器:
    python code.py
    打开你的浏览器输入 http://localhost:8080/ 查看页面。 若要制定另外的端口,使用 python code.py 1234。

    产品

    现在所运行 web.py 程序的web服务器是挺不错的, 但绝大多数网站还是需要更加专业一些的web服务器。web.py 实现了 WSGI 并能在任何兼容它的服务器上运行。 WSGI 是一个web服务器与应用程序之间的通用API, 就如Java 的 Servlet 接口。 你需要安装 flup (download here) 使web.py 支持with CGI, FastCGI 或 SCGI, flup提供了这些API的WSGI接口。
    转自:http://baike.baidu.com/view/5493106.htm?fr=aladdin
  • 相关阅读:
    HDU 5441——Travel——————【并查集+二分查界限】
    HDU 5446——Unknown Treasure——————【CRT+lucas+exgcd+快速乘+递推求逆元】
    HDU 5407——CRB and Candies——————【逆元+是素数次方的数+公式】
    HDU 5412——CRB and Queries——————【线段树套Treap(并没有AC)】
    HDU 4336——Card Collector——————【概率dp】
    HDU 5419——Victor and Toys——————【线段树|差分前缀和】
    使用 Jersey 和 Apache Tomcat 构建 RESTful Web 服务
    使用 JAX-RS 简化 REST 应用开发
    [置顶] 智能家居开源项目 The open Home Automation Bus (openHAB)
    ThoughtWorks 技术雷达(2013年5月)
  • 原文地址:https://www.cnblogs.com/catkins/p/5270415.html
Copyright © 2020-2023  润新知