本节讨论如何使用模板,template是dragonfly用来在后端初始化页面的技术,html文件中用标记嵌入newlisp代码,运行newlisp代码,填充html文件后再返回。
dragonfly生成松散的支持MVC模式,model一般都不需要。不过对我来讲已经够用了,一般主要就是用后端渲染完成两件事情:
1.权限控制
根据用户的权限决定产生哪些html代码
2. JSON数据的初始化
将数据(通常是JSON对象)直接放到html页面中作为变量保存,这样页面和JavaScript一旦被浏览器加载完成,就可以立刻取变量执行JavaScript代码,而不再需要单独发送一次Ajax请求获取数据。此举可以提高性能。
前两节已经描述了如何将URL请求映射到views目录下的某个html文件。现在只需要看一下用什么标记将newlisp代码写到html文件中。
在之前的dragonfly_welcome.html文件中添加一段:
<p>
<%= (append "hello," "world") %>
</p>
<%= 和 %> 内部是一个list,该对标记会将list返回的结果作为<p></p>的内容返回给浏览器。
修改这个页面无需重新启动服务,这在开发时效率很高。下面是网页输出的效果。
更多template的tag用法参考文档:
http://dragonfly.neocortex.io/dragonfly_templates
分享到:
相关推荐
newlisp中文教程,作为lisp的后起之秀,newlisp有些理念比较有价值,值得学习,所以分享下,希望对大家有用
newlisp实验室newlisp-labs是一组示例代码,其主要目的是试验和测试newLISP # ubuntusudo apt-get install libreadline-dev libffi-dev libevent-devsudo ln -s /usr/lib/x86_64-linux-gnu/libsqlite3.so /usr/local...
====注意:所有新的开发都在http://github.com/rowanthorpe/define-ext上继续进行,可以在此处找到较新的版本。... 使用现有的作为模板的其他编译语言(例如Fortran或ECL)的新插件应该很容易创建。
我想让我的newlisp程序访问MongoDB. 现在已经有MongoDB C driver,但是我没有时间去学习,只想尽快的完成工作。下面是我的方法,用C++创建一个动态库,这个动态库引用了MongoDB C++ driver. 但是会用extern "C" 导出...
地位该项目处于早期开发阶段。 这是我的第一个 newlisp 项目,所以风格有时可能会改变。 一些代码是实验性的。示例用法 (load "matrix.lsp"); set homeserver to connect to, defaults to localhost(set-server ...
bb-lighttp:Newlisp 脚本,使用服务器状态地址从 lighttpd 收集数据。 dzen2:用于 dzen2 的 Newlisp 脚本。 misc:用于监控系统的其他脚本。 已知的问题 需要变得更通用的非常原始的脚本。 错误 虫子比WaSP巢还...
关于一个类似于LISP的脚本语言“ newLISP”的小模块。它只是为个人使用而编写的,因此不是很有条理。使用共享库的用户可能无法在64位版本上运行(例如zlib.lsp)其他用于编辑Emacs的类型确定库 --iconv库* ck解释器...
适用于BSD,LINUX,MacOS X,SunOS和Win32的newLISP:小型,快速的350+功能,-C-,MySQL,PostgreSQL,SQLite,ODBC,TCP / IP,UDP,XML,Java接口,字符串处理,正则表达式,数学,财务,统计功能,Win32 DLL
因为 aardio奇特的语言特性,aardio的胶水能力极强,在aardio中可以非常方便的调用C语言、C++、C#、Java、Python、Javascript、Node.Js、Flash ActionScript、PHP、VBScript、NewLISP、Delphi、Go语言 .........
因为 aardio奇特的语言特性,aardio的胶水能力极强,在aardio中可以非常方便的调用C语言、C++、C#、Java、Python、Javascript、Node.Js、Flash ActionScript、PHP、VBScript、NewLISP、Delphi、Go语言 .........
要在浏览器中快速记录笔记,请使用电子名片盒系统,数据库以及有关主题和时间的报告。 纯净而简单。 使用newLISP作为本地主机。
它支持多种编程语言: PythonJavaScript Java走RubyPerla 瓦拉NewLisp 诡计OCaml 其他一些实验性绑定用于: 吉尔C ++ C# 该软件包还包含vdoc /子目录,该子目录包含用于生成所有的规则。依存关系要从存储库构建...
autoit3.esy autolisp.esy awk.esy bash.esy batch.esy bibtex.esy cadkey.esy cfml.esy ch.esy Clarion.esy cnc.esy cobol.esy ctags.esy cuda_cpp.esy cue.esy cvf.esy D.esy doxy.esy easyuo....
SDB(字符串数据库) sdb是基于djb的cdb磁盘... vala,luvit,newlisp和nodejs的绑定 sdb数据库的命令行前端 具有sdb后端的memcache客户端和服务器 数组支持(语法糖) json解析器/获取器(js0n.c) 裂口 基于cdb代码
命令: python3 __main__.py config.yaml --train -v 从Github提取的项目 项目信息列在文件projects.txt中。 每行代表一个项目,其中包括通过“ _”连接的GitHub用户名和项目名称。 Java方法和类在项目中的分布 资料...
此存储库使用“固定” GitHub标记,即,一旦创建,标记将始终指向相同的git commit标识符。 Docker标签 该存储库发布的工件是一个Docker映像。 映像的版本与getdns的版本对齐,而不是Stubby的版本或此存储库的...
SICP-答案计算机程序的结构和解释 这个项目包含了我对本书中这些问题的答案。其中一些来自的作品,请参见
阅读更多AI阅读湖二年级项目
Meldingsplichtige API 自动提交API的测试堆栈。 该堆栈将在不久的将来集成到中。运行应用程序docker-compose up堆栈是从开始构建的。清理数据库有时您可能需要清理数据库并确保其处于原始状态。...
百度更好的杜bdu以人类可读的格式显示文件大小,但按大小正确排序(如果有超级猫可用,则按大小)上色。依存关系系统工具 [可选]用法以递增顺序显示当前目录中所有文件的文件大小: bdu 以递增顺序显示当前目录中...