webpy入门

webpy_tutorial

import web

urls = (
    ‘/‘, ‘index‘
    )

这行表示我们要URL/(首页)被一个叫index的类处理

创建一个列举这些url的application

app = web.application(urls, globals())

现在来写index类,首先定义GET或者POST两个方法

class index:
    def GET(self):
        return "hello, world"

有人用GET发出请求时,GET函数会被web.py调用

最后开始运行代码:

if __name__ == "__main__":
    app = web.application(urls, globals())
    app.run()

完整的代码保存为server.py:

import web

urls = (
    ‘/‘, ‘index‘
)

class index:
    def GET(self):
        return "Hello, world!"

if __name__ == "__main__":
    app = web.application(urls, globals())
    app.run()

命令行输入python server.py就可以运行这个简单的服务器,也可以指定端口号:

python server.py 1234

模板

给模板新建一个目录,命名为templates,在该目录下新建一个hello.html文件,内容如下:

<em>Hello</em>, world!

然后在server.py的第一行下面添加:

render = web.py.template.render(‘templates/‘)

这会告诉web.py到模板目录去查找模板,然后修改index.GET:

return render.hello()

这里hello是刚才创建的模板名字hello.html

修改之后运行server.py,访问站点将会显示粗体的‘hello,world!‘

接下来可以再模板中增加一些交互功能,修改hello.html:

$def with (name)

$if name:
    I just wanted to say <em>hello</em> to $name.
$else:
    <em>Hello</em>, world!

这里的模板代码与python代码类似,代码段之前都有$

然后修改server.py中的index.GET:

def GET(self):
    name = ‘Alice‘
    return render.hello(name)

这里name会作为参数传入到模板里面,正如模板文件的开头要求传入的参数

现在运行server.py后访问将会显示I just wanted to say hello to Alice. ,当然如果参数是空字符串将会显示Hello, world!

如果让用户输入自己的名字,修改index.GET:

i = web.input(name=None)
return render.index(i.name)

在访问的地址后面加上/?name=Alice就可以通过GET的形式访问,将会显示I just wanted to say hello to Joe.

如果觉得URL后面跟着?看起来不好看,可以修改URL的配置:

‘/(.*)‘, ‘index‘

然后修改URL配置:

def GET(self, name):
    return render.hello(name)

这样对于/后面的任何字符串都可以进行处理,作为name参数进行传递

时间: 2024-10-12 20:37:43

webpy入门的相关文章

webpy使用笔记

webpy入门 工作环境中需要经常生产和测试服务器,机房一直很混乱,因此萌生了开发一个简单方便的服务器管理系统(说的好高大上,其实就是个可以获取服务器信息的小web应用).之所以选择webpy,正式因为它够简单,尤其是对于我这种python新人来说.它是一款轻量级的python web开发框架,对于个人开发小应用来说很适合. webpy install 下载:wget http://webpy.org/static/web.py-0.37.tar.gz 安装:python setup.py in

每天一点python:web.py框架入门

在使用微信搭建公众平台的时候,使用的是web.py这个方便简单的框架,学习一下. 框架文档:http://webpy.org/docs/0.3/tutorial.zh-cn  按照文档的内容写一遍程序入门就没什么问题了 运行程序:cmd中--进入文件所在路径--输入 python 文件名即可运行 遇到的问题: 问题1.模板文件中,第一行必须以 $def with()开头,否则会报错 $def with (name) $if name: I just wanted to say <em>hell

Python入门资料

转载:http://www.jianshu.com/p/7aa1d7fd08d6 一.学会使用搜索引擎,尤其是Google.推荐阅读文章 <如何用好Google搜索引擎?>知乎问答@崔凯 <十大高明的Google搜索技巧>by-雪影蓝风 <如何用好Google>by-李笑来 二.学会提问 推荐阅读<提问的智慧>by-啄木鸟社区 三.书籍推荐 零基础 Python官方文档点击打开链接英语不好的,暂时就先别看了,以后一定肯定要加强英语学习哦;). 推荐<H

webpy学习笔记之一

这几天在学习webpy框架,之前学过一段时间,后来各种转移框架,导致没有学透彻,都是皮毛,各种打印hello world!汗!现在将webpy的学习过程和思路写下来,便于复习和总结. 资料主要是webpy官方文档,首先看了入门,然后就跟着官网的几个例子,照猫画虎啊 系统:ubuntu14.04 工具:VIM 例子:Todo list 没什么难的,主要是跟着写和调试的过程中理解数据的传输流程 #####################################################

R语言快速上手入门

R语言快速上手入门 课程学习网址:http://www.xuetuwuyou.com/course/196 课程出自学途无忧网:http://www.xuetuwuyou.com 课程简介 本教程深入浅出地讲解如何使用R语言玩转数据.课程中涵盖R语言编程的方方面面,内容涉及R对象的类型.R的记号体系和环境系统.自定义函数.if else语句.for循环.S3类R的包系统以及调试工具等.本课程还通过示例演示如何进行向量化编程,从而对代码进行提速并尽可能地发挥R的潜能.本课程适合立志成为数据科学家的

笔记:Spring Cloud Zuul 快速入门

Spring Cloud Zuul 实现了路由规则与实例的维护问题,通过 Spring Cloud Eureka 进行整合,将自身注册为 Eureka 服务治理下的应用,同时从 Eureka 中获取了所有其他微服务的实例信息,这样的设计非常巧妙的将服务治理体系中维护的实例信息利用起来,使得维护服务实例的工作交给了服务治理框架自动完成,而对路由规则的维护,默认会将通过以服务名作为 ContextPath 的方式来创建路由映射,也可以做一些特别的配置,对于签名校验.登录校验等在微服务架构中的冗余问题

linux入门基础知识及简单命令介绍

linux入门基础知识介绍 1.计算机硬件组成介绍 计算机主要由cpu(运算器.控制器),内存,I/O,外部存储等构成. cpu主要是用来对二进制数据进行运算操作,它从内存中取出数据,然后进行相应的运算操作.不能从硬盘中直接取数据. 内存从外部存储中取出数据供cpu运存.内存的最小单位是字节(byte) 备注:由于32的cpu逻辑寻址能力最大为32内存单元.因此32位cpu可以访问的最大内存空间为:4GB,算法如下: 2^32=2^10*2^10*2^10*2^2 =1024*1024*1024

JAVA通信系列二:mina入门总结

一.学习资料 Mina入门实例(一) http://www.cnblogs.com/juepei/p/3939119.html Mina入门教程(二)----Spring4 集成Mina http://www.cnblogs.com/juepei/p/3940396.html Apache Mina 入门实例--创建一个MINA时间服务http://loftor.com/archives/apache-mina-quick-start-guide.html MINA2.0用户手册中文版--系列文

Storm入门(四)WordCount示例

Storm API文档网址如下: http://storm.apache.org/releases/current/javadocs/index.html 一.关联代码 使用maven,代码如下. pom.xml  和Storm入门(三)HelloWorld示例相同 RandomSentenceSpout.java /** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor lice