国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

Perl6中的BailadorWeb框架(簡介)_html/css_WEB-ITnose

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 16:39:34
文檔

Perl6中的BailadorWeb框架(簡介)_html/css_WEB-ITnose

Perl6中的BailadorWeb框架(簡介)_html/css_WEB-ITnose:開始 Bailador Bailador 是對 Perl Dancer Web 開發(fā)框架的模仿。安裝方法: panda install Bailador# orzef install Bailador 我們來創(chuàng)建一個腳本 first.pl,打印 hello world: use v6;use Bailador;get '/'
推薦度:
導(dǎo)讀Perl6中的BailadorWeb框架(簡介)_html/css_WEB-ITnose:開始 Bailador Bailador 是對 Perl Dancer Web 開發(fā)框架的模仿。安裝方法: panda install Bailador# orzef install Bailador 我們來創(chuàng)建一個腳本 first.pl,打印 hello world: use v6;use Bailador;get '/'

開始 Bailador

Bailador 是對 Perl Dancer Web 開發(fā)框架的模仿。安裝方法:

panda install Bailador# orzef install Bailador

我們來創(chuàng)建一個腳本 first.pl,打印 "hello world":

use v6;use Bailador;get '/' => sub { "hello world"}baile;

運(yùn)行:perl6 first.pl 它會啟動一個小型的 Web 服務(wù)器,你可以在3000端口上訪問它:

$ perl6 first.plEntering the development dance floor: http://0.0.0.0:3000[2016-05-05T12:57:31Z] Started HTTP server.

在 Bailador 中,我們需要把 HTTP 請求方法和服務(wù)器上的路徑映射給一個匿名子例程, 這個子例程會返回它里面的內(nèi)容。在這個例子中,我們把我們告訴它的網(wǎng)站根路徑的 get HTTP 請求映射為返回字符串 hello world。如果你啟動這個程序并用瀏覽器打開 http://0.0.0.0:3000/ 你就會看到這個文本。

我們還可以映射其它路徑(path-es):

get '/about' => sub { "關(guān)于我"}

這會把 http://0.0.0.0:3000/about url 映射為返回 「關(guān)于我」。

路徑中的占位符

路徑中的一部分可以是以冒號開頭的占位符:

get '/hello/:name' => sub ($name) { "Hello $name!"};

:name 部分能匹配除了斜線 / 之外的任何字符串,并且它所匹配到的值會被賦值給匿名子例程中的 $name 變量。

這樣的占位符你可以擁有多個,并且占位符的實(shí)際名字是什么無關(guān)緊要。占位符所捕獲到的值會按照它們出現(xiàn)在 url 中的順序賦值給函數(shù)的參數(shù)。

get '/hello/:first/:family' => sub ($fname, $lname) { "Hello $fname! And hi $lname"};

在這個例子中,無論 :first 占位符捕獲到的是什么,它都會被賦值給 $fname 參數(shù),無論 :family 捕獲到的是什么,它都會被賦值給 :$lname。例如 url http://0.0.0.0:3000/hello/Foo/Bar 會生成如下響應(yīng):

Hello Foo! And hi Bar!

當(dāng)然,讓占位符的名字和參數(shù)的名字相同可能會讓代碼更易讀。這是第二個腳本的完整版本:

use v6;use Bailador;get '/' => sub { "hello world"}get '/hello/:first/:family' => sub ($fname, $lname) { "Hello $fname! And hi $lname"};baile;

使用 Bailador 回顯文本

我們來看看怎么從用戶那兒接收輸入并把輸入回顯給用戶。

使用 POST 回顯

對于這,我們必須創(chuàng)建兩個路由(routes)因?yàn)楝F(xiàn)在 Bailador 還不能處理 GET 參數(shù)。

# echo_post.p6use v6;use Bailador;get '/' => sub { '';}post '/echo' => sub { my $text = request.params // ''; my $html = 'You said (in a POST request) '; $html ~= $text; return $html;}baile;

img

我們能看到怎么創(chuàng)建一個路由來處理 POST 請求。

第一個路由 get '/' => { 會發(fā)送一個 GET 請求并且它會返回一個包含在這個腳本中的 HTML 片段。(我知道,我們很快就會使用模板了) 那個 HTML 片段包含了一個帶有單個文本框的表單和一個提交按鈕。這個表單有一個通向 /echo URL 的 action,并且表單擁有 method="POST"。這意味著,當(dāng)用戶點(diǎn)擊提交按鈕時(shí),瀏覽器會發(fā)送回 POST 請求。

第二個路由 post '/echo' => sub { 會處理 /echo 路徑的 POST 請求。

Bailador 提供的 request 函數(shù)以 Bailador::Request的形式返回代表當(dāng)前請求的對象。

request 函數(shù)有幾個方法,其中一個是 params 方法,它返回一個散列,其中散列的鍵是參數(shù)的名字(在我們這個例子中是 text),值是提交的值。

我們把那個值保存在 $text 變量中,并且我們使用 '//' defined-or 操作符來設(shè)置變量的值為空,在用戶沒有提供任何值的情況下。然后我們連接用戶提供的值組成 "html" 字符串。最后發(fā)送回那個字符串,我們這個小小的回顯服務(wù)器就能工作啦。

img

使用 GET 回顯

use v6;use Bailador;get '/' => sub { '';}get '/echo' => sub { return 'You said (in a GET request) ' ~ (request.params // '');}baile;

img

在這個例子中,我省略了臨時(shí)變量 $text 和 $html,在之前的例子中它們也不是必要的。當(dāng)我們使用 GET 方法請求后,提交后回在瀏覽器的 URL 地址欄中拼接上我們的 text 字段和字段的值。

Bailador Application in a module

模板

在下面這個模板中,它把數(shù)據(jù)接收到變量 $h 中,之后使用這個變量來展示版本號和當(dāng)前時(shí)間 - 從紀(jì)元開始的秒數(shù)。bailador/code_in_module/views/index.tt

% my ($h) = @_;  Bailador App     

Bailador App

Version <%= $h %> Current time: <%= $h %>

模塊

這個文件把所有代碼包含在類中:

unit class Demo;

為了擁有特定領(lǐng)域語言(DSL),它加載了 Bailador 以讓我們定義路由更容易。

use Bailador;

最重要的是它包含了路由。

unit class Demo;use Bailador;my $version = '0.01';get '/' => sub { template 'index.tt', { version => $version, date => time }}

啟動應(yīng)用程序的腳本

use Bailador;Bailador::import();use lib callframe(0).file.IO.dirname ~ '/lib';use Demo;baile;

最有意思的應(yīng)該是這段代碼:

use lib callframe(0).file.IO.dirname ~ '/lib';

它計(jì)算這個工程的根目錄 - 假設(shè) app.pl 文件在根目錄中 - 然后把 /lib 子目錄添加到 perl 將要查找額外模塊的地方。這會在 lib 子目錄下加載 Demo.pm 文件。

img

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

Perl6中的BailadorWeb框架(簡介)_html/css_WEB-ITnose

Perl6中的BailadorWeb框架(簡介)_html/css_WEB-ITnose:開始 Bailador Bailador 是對 Perl Dancer Web 開發(fā)框架的模仿。安裝方法: panda install Bailador# orzef install Bailador 我們來創(chuàng)建一個腳本 first.pl,打印 hello world: use v6;use Bailador;get '/'
推薦度:
標(biāo)簽: pe html css
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 成人国内精品久久久久影院 | 91久久| 亚洲欧美日韩色 | 一级一级一级毛片免费毛片 | 亚洲国产精品免费在线观看 | 国产视频不卡 | 国模冰冰炮交图150 国模吧国模吧一二区 | 欧美福利在线视频 | 欧美极品在线播放 | 成人精品久久 | 婷婷色在线 | 欧美成人高清视频 | 另类专区亚洲 | 精品在线观看免费 | 日韩在线网址 | 91成人爽a毛片一区二区 | 欧美精品在线视频观看 | 国产一区在线免费观看 | 多人伦精品一区二区三区视频 | 国产免费高清视频在线观看不卡 | 久久久久亚洲精品成人网小说 | 丝袜视频一区 | 一级毛片真人不卡免费播 | 欧美精品久久久久久久久大尺度 | 国产日韩高清一区二区三区 | 国产极品视频 | 亚洲欧美久久精品一区 | 一级大毛片 | 日日碰日日摸日日澡视频播放 | a毛片免费视频 | 九九精品视频一区二区三区 | 亚洲精品毛片久久久久久久 | 91精品啪国产在线观看免费牛牛 | 96精品在线| 亚洲欧美日韩中文无线码 | 在线视频观看国产 | 伊人久久成人成综合网222 | 国产在线精品一区二区夜色 | 欧美资源在线观看 | 久久伊人免费视频 | 日韩第八页 |