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