Mojolicous-技巧积累
什么是 .html.ep
文件
其为 Mojolicious Web 框架中的模板文件,用于生成包含HTML内容的动态Web页面。
在Mojolicious框架中,”.ep”文件扩展名表示这是一个Mojolicious Embedded Perl(Mojolicious EP)模板文件,其中包含了Perl代码和HTML代码。这些模板文件使用Mojolicious的模板引擎来渲染动态内容。
在 .html.ep
文件中,Perl代码可以访问Mojolicious框架中的各种变量和对象,例如请求参数、路由信息、会话数据等。通过使用这些变量和对象,可以动态地生成HTML内容,并将其呈现给客户端浏览器。
__DATA__
标记和 @@
标记的作用
__DATA__
是Perl语言中的一个特殊标记,用于在程序中嵌入数据。在使用 __DATA__
标记后,程序中的任何内容都将被视为数据,直到文件结束或遇到 __END__
标记为止。
以 @@
开头的代码块通常是模板文件。模板文件包含了动态生成HTML内容的代码,可以使用Mojolicious的模板引擎来渲染模板并生成最终的HTML内容。
如:
1 |
|
模板文件的编写格式
Mojolicious 的模板文件使用 Ep (Embedded Perl) 文本格式编写,Ep 是一种简单的文本模板语言,它使用Perl语法和标记来生成HTML、XML、JSON等文本格式.
其以 .html.ep
, .json.ep
等作为文件扩展名.
用 <% %>
标记包含 Perl 代码块.
用 <%= %>
标记输出 Perl 表达式的结果.
用 <%# %>
标记注释模板文件中的内容.
用 <% layout 'default' %>
来标记定义模板文件的布局.
用 <%= link_to 'text', 'url' %>
标记生成链接.
用 <%= $var %>
标记输出 Perl 变量的值.
示例如:
1 |
|
在模板文件中使用 $c
对象的值
通过 $c
对象的 stash
属性来访问控制器中的变量。在控制器中,可以使用 stash
方法将变量传递到模板中。例如:
1 |
|
在模板文件中,可以使用 $c->stash->{test}
来访问 test
变量, 如下所示:
1 |
|
这将在模板文件中使用控制器中定义的 test
变量.
注意, 需要在 render 之前设置好 stash 的值.
关于 $c->render()
的调用次数
在同一个路由匹配中, 只能调用一次 render()
方法.
Mojolicious 项目目录结构
如:
1 |
|
其中:
blog.yml
: 项目的配置文件,用于存储项目的配置信息,例如数据库连接信息、路由配置等。lib/
: 存储项目的 Perl 模块。在这个例子中,blog.pm 是应用程序的主要入口点,Controller/Example.pm 是一个控制器模块,用于处理来自客户端的请求。public/
: 存储静态文件,例如 CSS、JavaScript、图像等。这些文件可以直接由客户端访问,而不需要经过 Mojolicious 应用程序。script/
: 存储一些辅助脚本,例如启动应用程序的脚本。t/
: 存储测试文件,用于测试应用程序的各种功能和行为。templates/
: 存储应用程序的模板文件,用于生成 HTML 页面。在这个例子中,layouts 目录存储应用程序的布局模板,example 目录存储一个示例模板,用于显示欢迎消息
关于 app->start()
app
是一个函数调用, 用于创建一个 Mojolicious 应用程序对象, 这里相当于是, 用返回的这个对象来调用 start
方法.
注意端口的改变, app->start('-l', 'http://*:8080')
, 需要用 ./script
这样运行才会改变, morbo script
仍然是 3000
端口.