Perl Dancer:从表单中获取数据
Perl Dancer: Getting data from forms
我是 Perl 新手,想知道:
- 如何将来自 html 表单的数据与 Perl dancer 一起使用?
我正在努力处理以下示例。我的 index.tt
文件中有这样一个表格:
<form action="/hello/:username" method="get" name="">
<h3>Please log in </h3>
<input type="text" name="username" required=""/>
<input type="password" name="senha" required=""/>
<button name="Submit" value="Login" type="Submit">Login</button>
</form>
我想使用表单中的用户名并构建一个 returns 输入信息的页面。所以我检查了 this 教程,并在我的 Proyecto.pm
中完成了以下操作:
package Proyecto;
use Dancer ':syntax';
our $VERSION = '0.1';
get '/' => sub {
template 'index';
};
get '/hello/:username' => sub {
my $username= params('username');
return "Hola $username";
};
但是没用。你们知道这里缺少什么吗?谢谢!
<form action="/hello/:username" method="get" name="">
将准确调用 /hello/:username
而无需替换。 HTML 无法神奇地替换部分源代码——无论后端使用的是 Dancer 还是其他任何东西。 (JavaScript 可以做到。)
get '/hello/:username' => sub {
匹配对 /hello/
的所有调用,后跟任何字符串,如 /hello/chungel
、/hello/Larry
或 /hello/:username
。最后一个会将值 username
设置为 param('username')
.
您还添加了一个带有 name="username"
的表单域,它以一个键的两个值结束(一个来自 URL,一个来自表单)。
最后:使用固定的 URL 作为表单操作:
<form action="/hello" method="get" name="">
和
get '/hello' => sub {
将用户名作为 HTML 表单值(和 HTTP 参数)传递在这里没有任何优势。
如果你真的想在 URL 中使用用户名,首先在路由定义中使用不同的名称:
get '/hello/:url_username' => sub {
return param('url_username');
接下来您需要使用 JavaScript 重写表单操作或使用 a Dancer before
hook.
重写目标 URL
我是 Perl 新手,想知道:
- 如何将来自 html 表单的数据与 Perl dancer 一起使用?
我正在努力处理以下示例。我的 index.tt
文件中有这样一个表格:
<form action="/hello/:username" method="get" name="">
<h3>Please log in </h3>
<input type="text" name="username" required=""/>
<input type="password" name="senha" required=""/>
<button name="Submit" value="Login" type="Submit">Login</button>
</form>
我想使用表单中的用户名并构建一个 returns 输入信息的页面。所以我检查了 this 教程,并在我的 Proyecto.pm
中完成了以下操作:
package Proyecto;
use Dancer ':syntax';
our $VERSION = '0.1';
get '/' => sub {
template 'index';
};
get '/hello/:username' => sub {
my $username= params('username');
return "Hola $username";
};
但是没用。你们知道这里缺少什么吗?谢谢!
<form action="/hello/:username" method="get" name="">
将准确调用 /hello/:username
而无需替换。 HTML 无法神奇地替换部分源代码——无论后端使用的是 Dancer 还是其他任何东西。 (JavaScript 可以做到。)
get '/hello/:username' => sub {
匹配对 /hello/
的所有调用,后跟任何字符串,如 /hello/chungel
、/hello/Larry
或 /hello/:username
。最后一个会将值 username
设置为 param('username')
.
您还添加了一个带有 name="username"
的表单域,它以一个键的两个值结束(一个来自 URL,一个来自表单)。
最后:使用固定的 URL 作为表单操作:
<form action="/hello" method="get" name="">
和
get '/hello' => sub {
将用户名作为 HTML 表单值(和 HTTP 参数)传递在这里没有任何优势。
如果你真的想在 URL 中使用用户名,首先在路由定义中使用不同的名称:
get '/hello/:url_username' => sub {
return param('url_username');
接下来您需要使用 JavaScript 重写表单操作或使用 a Dancer before
hook.