在网络上帮助Python

时间:2009-09-18 21:59:04

标签: python wsgi werkzeug

我一直在使用Werkzeug来制作符合WSGI的应用程序。我正在尝试修改首页中的代码。

它的基本思想是你转到/ hello URL并得到一个“Hello World!”信息。你去/你好/你得到“你好!”。例如,/ hello / jeff产生“Hello Jeff!”。无论如何,我正在尝试做的是在首页放一个带有文本框的表单,您可以在其中输入您的名字,然后将其提交给/ hello。因此,如果您在表单中输入“Jeff”并提交,则会收到“Hello Jeff!”消息。

但是,我不知道该怎么做。我需要将“name”变量传递给hello模板,但我不知道如何。这是我的index.html:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
  "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Index page</title>
</head>

<body>
<h1>Go to the <a href="${url_for('say_hello')}">default</a></h1>
<form name="helloform" action="${url_for('say_hello')}" method="post">
<input type="text" name="name">
<input type="submit">
</form>
</body>
</html>

method =“get”也无法预测。

4 个答案:

答案 0 :(得分:1)

以正确的方式行事:去/hello?name=joe向乔打个招呼,等等。这就是HTML / HTTP 设计的工作原理! /hello网址后面的代码只需要从请求中获取name参数(如果存在),并做出相应的响应。

答案 1 :(得分:0)

HTML表单具有静态目标地址action="/something",但您希望根据用户输入更改地址。 您有两种选择:

  1. 将javascript格式添加到html表单中 更改目标地址(通过 在表单前附加名称) 提交。

  2. 在您的Web框架中编写一个读取GET或POST的新方法 变量并在那里指出形式。

答案 2 :(得分:-1)

直接在您提供的页面链接(http://werkzeug.pocoo.org/)上单击“单击此处”,您将获得hello X示例的代码。你似乎缺少的是:

Hello ${url_values['name']|h}!

在你的html模板中的某个地方(假设它是响应模板和请求模板)

答案 3 :(得分:-1)

HTML基于REST原则...每个url应该是一个对象,就像一个人;不是一个动作,比如跟一个人问好。只有当您的Web应用程序通过查看其数据库来了解内部人员时,才能确定您想要问候的人。

如果您的webapplication没有名为Joe的对象,那么使用Joe设计URL并不是正确的方法。您的特定Web应用程序是关于找出人员并向他们发送问候消息。因此,您可能应该有一个URL:/ greeter,它查找在GET或POST请求中发送的信息(来自您的表单),并显示问候语。如果它不知道该问候谁,它可以显示表格来查找。

在构建软件时,始终考虑您实际使用的对象---构成系统的组件。

相关问题