## page was renamed from CherrPyTut/03 get and post.py
##language:zh
{{{#!python
# -*- coding: gbk -*-
"""
Tutorial 03 - Passing variables

本教程展示如何处理 GET/POST 变量在函式中
    - 使用GBK 省了麻烦
    - 注意编码时的缩进!一定要使用空格来代替缩进符号
    - POST 方式可以隐藏参数的传送
    - GET 方式在调试时好用!

"""
from cherrypy import cpg
#from cherrypy.lib.filter import EncodingFilter
# 尝试编码支持,不过没有很好的得到结果,忽略!
class WelcomePage:
    #_cpFilterList = [EncodingFilter('utf8')]
    def index(self):
        # 输出询问用户姓名的表单
        return '''
            <form action="greetUser" method="POST">
            What is your name?
            <input type="text" name="name" />
            <input type="submit" />
            </form>
            '''
    # 嗯嗯!总是要的声明!可以作为调试时的开关?
    index.exposed = True
    
    def greetUser(self, name = None):
        """CherryPy 处理GET/POST变量为函式的参数,对于Python 没有什么限制,比如说长度什么的
            - 当然我们可以自由的定义变量,只要和表单中的对象名一致就好!
            - 注意的是,若 某一表单项没有值返回,会默许的赋为 None ,这样一来我们可以将其作为条件来判定
        """
        if name:
        	# 问候一下子
        	return "Hey %s, what's up? 怎么了?哈哈哈!" % name
        else:
        	# 咦咦咦?没有输入
        	return 'Please enter your name <a href="./">here</a>.'

    greetUser.exposed = True


cpg.root = WelcomePage()
cpg.server.start(configFile = 'tutorial.conf')

}}}