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参数进行传递

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。