web.py 0.3 新手指南 - RESTful doctesting using app.request

!/usr/bin/env python
"""
RESTful web.py testing

usage: python webapp.py 8080 [--test]

>>> req = app.request('/mathematicians', method='POST')
>>> req.status
'400 Bad Request'

>>> name = {'first': 'Beno\xc3\xaet', 'last': 'Mandelbrot'}
>>> data = urllib.urlencode(name)
>>> req = app.request('/mathematicians', method='POST', data=data)
>>> req.status
'201 Created'
>>> created_path = req.headers['Location']
>>> created_path
'/mathematicians/b-mandelbrot'
>>> fn = '<h1 class=fn>{0} {1}</h1>'.format(name['first'], name['last'])
>>> assert fn in app.request(created_path).data

"""

import doctest
import urllib
import sys

import web


paths = (
  '/mathematicians(/)?', 'Mathematicians',
  '/mathematicians/([a-z])-([a-z]{2,})', 'Mathematician'
)
app = web.application(paths, globals())

dbname = {True: 'test', False: 'production'}[sys.argv[-1] == '--test']
db = {} # db = web.database(..., db='math_{0}'.format(dbname))


class Mathematicians:

  def GET(self, slash=False):
    """list all mathematicians and form to create new one"""
    if slash:
        raise web.seeother('/mathematicians')
    mathematicians = db.items() # db.select(...)
    return web.template.Template("""$def with (mathematicians)
      <!doctype html>
      <html>
      <head>
        <meta charset=utf-8>
        <title>Mathematicians</title>
      </head>
      <body>
        <h1>Mathematicians</h1>
        $if mathematicians:
          <ul class=blogroll>
            $for path, name in mathematicians:
              <li class=vcard><a class="fn url"
              href=/mathematicians/$path>$name.first $name.last</a></li>
          </ul>
        <form action=/mathematicians method=post>
          <label>First <input name=first type=text></label>
          <label>Last <input name=last type=text></label>
          <input type=submit value=Add>
        </form>
      </body>
      </html>""")(mathematicians)

  def POST(self, _):
    """create new mathematician"""
    name = web.input('first', 'last')
    key = '{0}-{1}'.format(name.first[0].lower(), name.last.lower())
    name.first, name.last = name.first.capitalize(), name.last.capitalize()
    db[key] = name # db.insert(...)
    path = '/mathematicians/{0}'.format(key)
    web.ctx.status = '201 Created'
    web.header('Location', path)
    return web.template.Template("""$def with (path, name)
      <!doctype html>
      <html>
      <head>
        <meta charset=utf-8>
        <title>Profile Created</title>
      </head>
      <body>
        <p>Profile created for <a href=$path>$name.first $name.last</a>.</p>
      </body>
      </html>""")(path, name)


class Mathematician:

  def GET(self, first_initial, last_name):
    """display mathematician"""
    key = '{0}-{1}'.format(first_initial, last_name)
    try:
        mathematician = db[key] # db.select(...)
    except KeyError:
        raise web.notfound()
    return web.template.Template("""$def with (name)
      <!doctype html>
      <html>
      <head>
        <meta charset=utf-8>
        <title>$name.first $name.last</title>
      </head>
      <body class=vcard>
        <p><a href=/mathematicians rel=up>Mathematicians</a> &#x25B8;</p>
        <h1 class=fn>$name.first $name.last</h1>
      </body>
      </html>""")(mathematician)


if __name__ == "__main__":
  if sys.argv[-1] == '--test':
    doctest.testmod()
  else:
    app.run()

 

Python实现Restful API Python实现Restful API最近写了一个网络验证登录的爬虫,需要发布为Rest服务,然后发现Flask是一个很好的Web框架,使用Python语言实现。1. 安装flaskpip install flask2.编写简单的HelloWorldfrom flask import Flaskapp = Flask(__name__)@app.route('/') def index(): 阅读详情

相关推荐

GPU运维面试题

【代码】GPU运维面试题。

u011220233的博客 695

使用webpy创建一个简单的restful风格的webservice应用

下载:wget http://webpy.org/static/web.py-0.38.tar.gz解压并进入web.py-0.38文件夹安装:easy_install web.py 这是一个如何使用python快速构建简单restful风格webservice的应用教程。 1.分析rest路由规则  rest风格的服务通常使用web.py来创建服务器端脚本,一般情况下包含两个url路径:  一...

weixin_34256074的博客 465

本地大模型5:在pycharm用python调用ollama本地大模型

python调用ollama本地大模型

weixin_74825941的博客 8375

用python创建一个简单的restful风格的web服务应用

使用python创建一个简单的restful风格的webservice应用 摘要 本文介绍使用python创建一个简单的restful风格的webservice应用,原文地址http://www.dreamsyssoft.com/blog/blog.php?/archives/6-Create-a-simple-REST-web-service-with-Python.html p

猫哥 的沉淀、积累、总结。天天学习,好好向上...c/c++,嵌入式 linux,Android,HarmonyOS,AIOT) 2372

vCenter Server出现no healthy upstream的解决方法

可以通过"VMware vCenter Server Management(服务)"来排查问题,在网页里面找到“服务”模块,会发现有很多服务没有启动起来,而且手动启动也无法启动。7.0 地址后,页面出现“no healthy upstream”,无法正常登录vCenter,重启后依旧如此,该故障的前提是没有对vCenter做过任何配置,如下图所示。于是用命令查询是否有证书过期,发现真有多个服务依赖的证书在当天早上过期。使用如下命令尝试打开服务发现不分服务可以打开,不分服务无法打开。

1万+

【第三只眼:Oracle通过归档日志查看系统的业务高峰sql】

根据oracle归档的业务高峰量,查找业务sql,进行优化

霍然的专栏 578

python构建restful服务

python构建restful服务 一、目的:     创建简单的restful服务,实现userid和port的映射。 二、使用组件: 1.restful web框架: web.py(http://webpy.org/install.zh-cn)     安装web.py:  sudo pip install web.py 2.xml解析框架:

conanswp的专栏 2671

STM32F103C8T6+I2C+DMA读取陀螺仪模块JY901S(硬件I2C

说明:1.本实验代码适用移植一切stm32f1系列;2.本实验使用的是外设资源硬件I2C2;3.本实验运用的是DMA单次模式,如果需要DMA的循环模式,请移步我的另一篇文章;4.本文章不提供陀螺仪校准教学,并是在没有校准陀螺仪情况下读取数据;5.本文章是作者的学习记录及心得,如有不足,欢迎指正。 总结:亲测stm32f103c8t6最小系统板通过片上外设资源I2C配合DMA读去陀螺仪模块jy901s偏航角有效。

anquanyuanqqadsy的博客 6171

REST web.py

Web.py的优秀之处在于, 它没有过多的包装, 不会像其他web框架一样. 初次使用Web.py, 你可能会因为"闻到泥土的芬芳"而满心欢喜.Web.py让你, 可以直接使用基本的Http methods, 这样, 我们就可以REST了.下面我们描述如何实现一个用户管理的小系统, 当然, RESTly.app.py:import webfrom user import

D_yang的烂摊子 4945

NDIAurora 6D、5D传感器裸线焊接与烧录 6D传感器型号:10001742;5D传感器型号:610157

NDI Aurora 6D、5D传感器裸线焊接与烧录

yanghong2000719的博客 1201

Claude Code 里的 MCP 连接失败到底在报什么

文档还说明,HTTP 类型、stdio 类型等 MCP server 的接入方式不同,stdio server 会被 Claude Code 当作本地进程拉起,而 HTTP server 则需要 Claude Code 去访问一个已经存在的 HTTP endpoint。把这段输出翻成更接地气的运维语言,就是 Claude Code 已经知道我们想接两个外部能力,一个是 SAP ADT 官方 MCP,一个是 Chrome DevTools MCP,但当前没有一个完成握手。,因为它的信号更明确。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 145

python 部署 Restful web

使用python web做Restful 风格,很简单,采用Flask框架轻松实现一个RESTful的服务。 Restful相关介绍请查看:https://www.ibm.com/developerworks/library/ws-restful/index.html 1. 环境搭建 首先需要准备环境   need virtualenvpython的沙盒环境--virtualenv(...

weixin_30681615的博客 385

Coze实战:解锁多Bot协同与条件分支工作流的奥秘

本文详细介绍了在字节跳动Coze平台实现多Bot协同与条件分支工作流的方法。首先阐述了Coze平台的功能优势,包括丰富的插件、知识库和工作流功能。随后分步骤讲解了多Bot协同的实现:从准备工作、创建Bot到协同配置,并提供了电商客服的实例演示。在条件分支工作流部分,详细说明了条件节点的作用类型、条件设定方法以及具体配置操作,强调测试优化的重要性。最后通过电商平台综合案例,展示了多Bot协同与条件分支的实际应用效果,并针对常见问题提供解决方案。文章为开发者在Coze平台上构建智能应用提供了实用指导,有助于提升

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 449

构建RESTFUL服务

REST简介 REST是一种Web软件架构风格,它是一种风格,而不是标准,匹配或兼容这种架构风格的网络服务称为REST服务.REST服务简洁并且有层次,REST通常基于HTTP,URI和XML以及HTML这些现有的广泛流行的协议和标准.在REST中,资源是由URI来指定的,对资源的增删改查操作可以通过HTTP协议通过GET,POST,PUT,DELETE等方法实现的.使用REST可以更加高效地利用...

Catcher_Ghost的博客 391

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

web.py应用工具库:webpyext

缘起 在前面关于Backbone的文章里提到过要谈后端的,现在就来简单说说在那个离线客户端的后端实现中用到的一些东西。 用了很长时间的web.py,之所以选择web.py,是走过很多弯路的。早年主要是一些重量级框架,接触过Django、TurboGears和Pylons相当长时间,尤其是TG1用了很久,具体在《SD2C之三种Python的Web框架 》里说过。后来还有一段时间用了web2py——...

923723914 203

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

python实现RESTful服务(基于flask)

1、python实现RESTful服务(基于flask) 2、Flask-RESTful 3、Postman工具——下载与安装 4、Flask-PyMongo Flask扩展系列(五)–MongoDB Flask中连接远程MongoDB数据库的gridfs并返回查询到的文件数据 5、什么是RESTful API? Python Web开发之——构建基于Flask框架的web后端项目 ...

qq_28808697的博客 882

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

使用web框架web.py来构建web应用

1.从一个web.py的hello world的DEMO服务说起 (1)编写web.py的web应用 import web #引入web.py的包 #定义web应用的路由规则 urls = ( '/', 'index' ) #与是某条路由规则的处理类,提供GET/POST等HTTP method class index: def GET(self):

@_囚徒-2018_的家园 4899

Python Django 实现restful API

最近在写测试平台,需要实现一个节点服务器的api,正好在用django,准备使用djangorestframework插件实现。 需求 实现一个接口,在调用时,通过传递的参数,直接运行对应项目的自动化测试环境 Python3.6 ,Pycharm,w7项目结构 功能实现流程 我们要做的就是实现以上流程 安装 pip install dj

xie_0723的博客 1万+

Python调用RESTful API时踩到的各种坑

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34194317的博客 846

webpy使用说明(二)

webpy使用说明(二)除了get,浏览器与服务器常见的通信还有post. 来看一个post的例子。import web,os render = web.template.render('templates/') urls = ('/','index') login = form.Form( form.Textbox('username'), form.Password('pass

缥缈的云 专栏 1312

python实现restful HTTP服务

这个实现http服务是基于flask 简单配置环境: pip install flask pip install flask-restful github:https://github.com/Addision/Restful-Server/tree/master/RestfulServer c++ 构造一个简单post 或者get请求: std::string Http::C...

The Coding World 2337

python编写简单RESTful API

初来乍到,菜鸟一枚。。。1.安装python 3.5.4 下载地址 *注意环境变量哦~~~2.使用包管理工具安装flask (此处没有安装 virtualenv,这个主要是用来做解释器环境隔离的,避免同一机器上的多个python或者多个python的库依赖) 3.JetBrains PyCharm 编写如下代码from flask import Flask app = Flask(__

hellosnowyy 1万+

python restful服务部署_python 部署 Restful web

使用python web做Restful 风格,很简单,采用Flask框架轻松实现一个RESTful的服务。Restful相关介绍请查看:https://www.ibm.com/developerworks/library/ws-restful/index.html1. 环境搭建首先需要准备环境need virtualenvpython的沙盒环境--virtualenv这里使用virtual...

weixin_32998893的博客 481
上一篇: web.py 0.3 新手指南 - 实时语言切换
下一篇: web.py 0.3 新手指南 - 使用db.query进行高级数据库查询
SleepInDelphi
博客等级 码龄19年 32粉丝 388原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值