私は最初のPythonコードをオンラインにしていく過程に入っています。 app
をweb.application(urls, globals())
に割り当てると、正確にはどうなっていますか?また、form = web.input(name="Nobody", greet=None)
という行は、hello_form
という別のスクリプトの2つの入力フォームを参照していますが、その目的は何ですか?次の行でform.greet
とform.name
と呼んでいますが、それらはユーザー入力に基づいて作成された変数でなければなりません(まだname = "Nobody"
と言っていますか?)。Pythonコードをオンラインにしてapp.pyスクリプトと混同する
import web
urls = (
'/hello', 'Index'
)
app = web.application(urls, globals())
render = web.template.render('templates/', base="layout")
class Index(object):
def GET(self):
return render.hello_form()
def POST(self):
form = web.input(name="Nobody", greet=None)
greeting = "%s, %s" % (form.greet, form.name)
return render.index(greeting = greeting)
if __name__ == "__main__":
app.run()
説明ありがとうございます!私は何が間違っているのか分かりませんが、2行目を 'form = web.input()'に変更して壊してみましたが、何の違いもありませんでした。また、私のブラウザでは、最初のテキストボックスに何も入力しなければ、「誰もいない」ということはありません。それはちょうど空白です。 – ZCJ
@ZCJブラウザがまだそのフォームの値(空の文字列)を送信しているので空白です。ブラウザが値を送信しないようにするには、ボックスを完全に削除する必要があります。 – Amber
それでは、なぜ私はそこにデフォルト値を置くのですか? 'form'というweb.input()変数が存在するため、そこに入れています。彼らが表示される唯一の方法は、私がそのボックスを持っていなくても、あなたはなぜそれらをデフォルトとして必要とするのでしょうか? – ZCJ