怎样在Django和Python中打印文本框的值?

0 投票
2 回答
1204 浏览
提问于 2025-04-16 06:43

我正在尝试创建一个非常简单的网页,上面有两个文本框一个按钮三个标签,看起来像这样:

First Name: [..........]   <-- label + textfield

Last Name: [...........]   <-- label + textfield

(Submit) <-- button

{Your full name is %FirstName% + %LastName% } <-- label

如你所见,这个任务非常简单。我可以在ASP.NET中轻松地在5分钟内完成,但我对Django或Python不太熟悉,因为我刚开始学习这个框架。

谢谢。

2 个回答

1

在Python这边,你可以通过查看request.POST["field_name"]来获取这些值。然后,你可以把这些值传递给模板(具体的方法取决于你用什么函数来调用模板)。接着,模板的内容大概会是这样的:

Your full name is {{ first_name }} {{ last_name }}

如果你需要更多的细节或例子,随时告诉我。

2

zomboid的评论是对的。看起来你需要多了解一下Django。你可以看看《Django书》的这一章。虽然那本书的内容有点过时,但基本的概念还是一样的。

一些基本的指导:你需要把一个网址(比如说/namegrabber)指向一个视图函数。在这个视图函数里,你要判断用户是发起了GET请求还是POST请求。如果是GET请求,那就创建一个没有数据的表单(也就是空表单),然后把它传给模板去渲染。如果是POST请求,那就创建你的表单,并用request.POST里的数据填充它。接着,把表单里cleaned_data属性中的数据传给模板去渲染。

还有两个补充说明。首先,正如我提到的,《Django书》里的内容有点过时。特别是,如果你使用的是Django 1.2以上的版本,你需要处理Django的CSRF保护,因为你的视图会处理POST请求。关于如何处理这个问题,你可以在这里找到一个很好的概述。其次,当你构建表单时,可能需要用forms.CharField来处理你提到的数据。

祝你好运!一旦你熟悉了这个框架,这在Django里其实是个五分钟就能完成的任务。

撰写回答