wri的googleappengine属性

2024-04-24 23:35:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我在看这个site的代码,它是一个基本的google应用程序引擎计算器。我对GAE和HTML一样缺乏经验,所以当我看到下面的代码时,我有点困惑。主要是最后一行</html>""" % (result, buttons))。%代表什么?它如何将结果和按钮与html代码联系起来?你知道吗

        result = ""
        try:
            result = f[operator](x, y)
        except ValueError:
            result = "Error: Incorrect Number"
        except ZeroDivisionError:
            result = "Error: Division by zero"
        except KeyError:
            pass
        # build HTML response
        buttons = "".join(["<input type='submit' name='operator' value='"
                           + o + "'>" for o in sorted(f.keys())])
        self.response.out.write("""<html>
            <body>
            <form action='/' method='get' autocomplete='off'> 
            <input type='text' name='x' value='%s'/><br/>
            <input type='text' name='y'/><br/> 
            %s 
            </form>
            </body>
            </html>""" % (result, buttons))

Tags: 代码nameforminputvalueresponsehtmltype
1条回答
网友
1楼 · 发布于 2024-04-24 23:35:42

%用于在Python中格式化字符串。请参见Dive Into Python中的好解释。在您的示例中,它们用于将“%s”字符替换为变量中的值。你知道吗

修改示例:

您的示例的修改版本,硬编码值为resultbuttons。你知道吗

result = "THIS IS MY RESULT"
buttons = "AND MY BUTTON"
output = """
<html>
    <body>
        <form action='/' method='get' autocomplete='off'> 
            <input type='text' name='x' value='%s'/><br/>
            <input type='text' name='y'/><br/> 
            %s 
        </form>
    </body>
</html>
""" % (result, buttons)

print output

将产生:

<html>
    <body>
        <form action='/' method='get' autocomplete='off'> 
            <input type='text' name='x' value='THIS IS MY RESULT'/><br/>
            <input type='text' name='y'/><br/> 
            AND MY BUTTON 
        </form>
    </body>
</html>

在您的示例中,按钮包含更多的Html,而格式字符串在值实际更改的上下文中更有意义,但上面应该说明基本原则。你知道吗

一个简单的例子:

代码如下:

result = "THIS IS MY RESULT"
buttons = "AND MY BUTTON"
print "%s ... %s!" % (result, buttons)

将产生:

THIS IS MY RESULT ... AND MY BUTTON!

它与应用程序引擎的关系:

上面的两个例子都说print:这会将输出打印到“stdout”——您的控制台。你知道吗

在您最初的示例中,它是self.response.out.write,这是告诉appengine将文本(即Html)写入浏览器的方式。你知道吗

具体来说,如果你改变了:

result = "THIS IS MY RESULT"
buttons = "AND MY BUTTON"
print "%s ... %s!" % (result, buttons)

收件人:

result = "THIS IS MY RESULT"
buttons = "AND MY BUTTON"
self.response.out.write("%s ... %s!" % (result, buttons))

当您访问页面时,文本将显示在浏览器中,而不是显示在控制台上。你知道吗

参考文献:

Dive Into Python,上面链接的也是学习Python的好资源。如果你是Python新手,整本书都不错。就像Udacity课程一样。你知道吗

Python documentation on format strings是格式化字符串的好参考。你知道吗

这本书"Using Google App Engine"是一个很好的资源,可以同时学习Python、Html和appengine。我可以诚实地推荐它,我自己也读过。它很容易接近,但现在已经有几年的历史了。你知道吗

玩得开心!你知道吗

相关问题 更多 >