免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 21486 | 回复: 11

Perl web框架Mojolicious,0基础入门篇,5分钟学会! [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2014-08-22 13:54 |显示全部楼层
Mojolicious是当前最流行也是最先进的Perl web框架(不是之一)。
我不想把这篇文章写的很长,这是一篇非常基础的Mojolicious介绍性文章,保证所有人5分钟学会用Mojolicious自己搭网站。
首先,Mojolicious是一个Perl模块,你可以用你知道的任何一种方式把这个模块安装在你的系统当中。Mojolicious要求Perl版本v5.10.1或以上,官方网址是http://mojolicio.us/,上面有所有文档和举例代码。

1. 创建一个Mojolicious web应用
  1. [阿斯卡拉亲王@www.goodgoodbadbad.com ~]# mojo generate app Webapp
  2.   [mkdir] /root/webapp/script
  3.   [write] /root/webapp/script/webapp
  4.   [chmod] webapp/script/webapp 744
  5.   [mkdir] /root/webapp/lib
  6.   [write] /root/webapp/lib/Webapp.pm
  7.   [mkdir] /root/webapp/lib/Webapp
  8.   [write] /root/webapp/lib/Webapp/Example.pm
  9.   [mkdir] /root/webapp/t
  10.   [write] /root/webapp/t/basic.t
  11.   [mkdir] /root/webapp/log
  12.   [mkdir] /root/webapp/public
  13.   [write] /root/webapp/public/index.html
  14.   [mkdir] /root/webapp/templates/layouts
  15.   [write] /root/webapp/templates/layouts/default.html.ep
  16.   [mkdir] /root/webapp/templates/example
  17.   [write] /root/webapp/templates/example/welcome.html.ep
  18. [阿斯卡拉亲王@www.goodgoodbadbad.com ~]# cd webapp/
  19. [阿斯卡拉亲王@www.goodgoodbadbad.com webapp]# ls -F
  20. lib/  log/  public/  script/  t/  templates/
  21. [阿斯卡拉亲王@www.goodgoodbadbad.com ~]#
复制代码
创建应用的命令会在你当前目录下创建一个新目录(Webapp),这个目录会包含一些子目录和举例代码文件。
看着文件和目录很多,其实非常简单。以后你给自己应用写的所有代码都放在lib目录中,
1. lib/目录中是你给自己应用写的所有代码
2. public/目录中是所有静态文件,包括css,js,html和所有图片文件等
3. templates/目录中存放所有的模板文件
好了,基本上就需要这么多了。

2. 配置Mojolicious应用
在上面的例子中,Mojolicious的配置文件是/root/webapp/lib/Webapp.pm
说是“配置文件”,实际上也是perl代码,用户做各种设置和加载各种插件。另外,也是最重要的一部分,所有的路由都会写在这个文件里。
拿上面刚创建的应用为例,如果希望用户在访问http://www.goodgoodbadbad.com/helloworld的时候显示一个欢迎页,可以如下修改lib/Webapp.pm
  1. $r->get('/helloworld')->to('example#welcome');
复制代码
这样一行的语义是:对访问http://www.goodgoodbadbad.com/helloworld的get请求,使用lib/Webapp/Example.pm中的welcome方法(函数)处理。
如果你打开lib/Webapp/Example.pm,会看到有个perl函数“welcome”,最后一行大概是$self->render(msg => '****');这个"$self->render"在lib/Webapp/Example.pm中被调用,默认就会使用templates/example/welcome.html.ep作为模板,输出html信息。
档需要有变量输出给模板的时候,就用如下语法:
  1. $self->render(firstName => 'Y', lastName => 'P');
复制代码
在模板文件templates/example/welcome.html.ep中就可以输出$firstName,$lastName这两个变量的内容了
Mojolicious提供的模板语言非常简单,对于Perl程序员来说是不需要学习的,模板语言就是Perl语言,你可以像写ASP, PHP, JSP那样写模板本件(虽然不推荐),看一眼默认的模板文件templates/example/welcome.html.ep就能学个大概了,更多的关于模板的信息在这里可以找到:http://mojolicio.us/perldoc/Mojo/Template

3. 运行Mojolicious程序
  1. [阿斯卡拉亲王@www.goodgoodbadbad.com ~]# pwd
  2. /root/webapp
  3. [阿斯卡拉亲王@www.goodgoodbadbad.com ~]# morbo -l "http://*:8080" -w ./ script/webapp
  4. Server available at http://127.0.0.1:8080.
复制代码
morbo是Mojolicious内置的一个web server,更多关于morbo的信息可以man morbb,更多关于运行Mojolicious程序的信息看这里:http://mojolicio.us/perldoc/Mojo ... Cookbook#DEPLOYMENT


最后。介绍一个Mojolicious的QQ群248073371,应该是在国内唯一的一个Mojolicious的群了。
群主是扶凯,里面还有很多大家熟悉的ID,包括flw。群主有言在先,不希望群里都是些不看文档专门问初级问题的小白。所以希望大家入群之前是已经仔细看过Mojolicious文档的,尽量不要问些小白问题,面斥不雅。

论坛徽章:
78
双子座
日期:2013-10-15 08:50:09天秤座
日期:2013-10-16 18:02:08白羊座
日期:2013-10-18 13:35:33天蝎座
日期:2013-10-18 13:37:06狮子座
日期:2013-10-18 13:40:31双子座
日期:2013-10-22 13:58:42戌狗
日期:2013-10-22 18:50:04CU十二周年纪念徽章
日期:2013-10-24 15:41:34巨蟹座
日期:2013-10-24 17:14:56处女座
日期:2013-10-24 17:15:30双子座
日期:2013-10-25 13:49:39午马
日期:2013-10-28 15:02:15
发表于 2014-08-22 14:03 |显示全部楼层
平时用不到web方面,每次看都深入不进去,之前看dancer也是这样,有时间研究下

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2014-08-22 14:12 |显示全部楼层
Dancer...差不多仅限于Web了,但Mojolicious绝对不仅限于Web,因为基于事件驱动,很多东西都可以以此为基础搭建

论坛徽章:
8
技术图书徽章
日期:2013-09-30 08:51:28技术图书徽章
日期:2013-12-11 09:26:39白羊座
日期:2013-12-27 15:27:13金牛座
日期:2014-01-06 09:13:05天蝎座
日期:2014-01-21 14:23:28酉鸡
日期:2014-05-09 16:51:12卯兔
日期:2014-08-11 16:49:1515-16赛季CBA联赛之八一
日期:2017-08-14 23:24:57
发表于 2014-08-22 15:34 |显示全部楼层
本帖最后由 xiumu2280 于 2014-08-22 15:35 编辑

对着方面还是挺有兴趣,上周刚整了下环境···  也就学到 楼主教的这里
深入的东西还没看

论坛徽章:
3
CU十二周年纪念徽章
日期:2013-10-24 15:41:34子鼠
日期:2013-12-14 14:57:19射手座
日期:2014-04-25 21:23:23
发表于 2014-10-07 12:12 |显示全部楼层
偶之前试过Mojo 苦于文章 较少,一直在用dancer{:3_190:}

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2014-10-07 20:27 |显示全部楼层
回复 5# mcshell

可以去扶凯的网站,他翻译了很多mojo文档了   

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 10:16:53
发表于 2015-01-12 22:51 |显示全部楼层
好文,顶起,差不多也是MVC模式,跟之前学了点php的thinkphp框架有点像。

论坛徽章:
0
发表于 2015-02-13 10:56 |显示全部楼层
收起来,留着学习

论坛徽章:
0
发表于 2015-03-20 11:47 |显示全部楼层
非常感谢楼主分享

论坛徽章:
0
发表于 2015-07-10 10:09 |显示全部楼层
谢谢分享,学习中。

讲讲
session
log

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP