go语言iris go语言iris框架 使用mvc解析网页请求数据( 二 )


{# 正确示例 #}
{% for val in uinfo %}
{{val.Username}}
{% endfor %}
说一下返回map时 用for循环的情况 , 无论是否是map数组都可以用forkey,valin uinfo 来遍历数据
4. 在模板中字符串的连接和宏标签的使用
在模板中有时我们会碰到这样的需要:在模板中有几个变量,我们想把这几个变量连接在一起赋值给另一个变量以做其它操作
例: 在模板中有三个变量 host是域名,route是路由地址,param是参数,要把这三个变量连接起来赋值给另一个新的变量做urlencode操作 。这应该怎么办
因为在模板中使用 + 号连接变量时,程序会认为是数学运算,两个字符串的连接值为0,如果用内置的filter: join来连接需要传入一个slice,但这三个只是字符串变量 。
这个时候我们可能就要用到宏标签了% macro %% endmacro %.
思路是这样的,在宏标签中定义一个宏(可以理解为一个方法) , 这个宏接收三个参数(参数个数看需求而定),在宏内返回连接的字符串
代码:
{#定义三个变量#}
{% set host="" %}
{% set route="/aaa/bbb" %}
{% set param= "?id=123" %}
{#定义一个宏标签接收三个参数,并返回 。注意在宏标签内如果换行 , 输出的结果中也会有换行 , 在urlencode的时候也会把换行符进行转义#}
{% macro joinUrl(paramA,paramB,paramC) %}{{paramA}}{{paramB}}{{paramC}}{% endmacro %}
hr
{#定义一个新变量调用宏方法,并将三个参数传入#}
{% set newurl = joinUrl(host,route,param) %}
{#输出newurl的值#}
{{newurl}}br
{#输入出urlencode后的字符串#}
{{newurl|urlencode}}br
结果:
http%3A%2F%2F
在宏标签在也可加入自定义的一些字符串如在上面的宏标签返回结果中要加一个固定字符可以这样写:
{% macro joinUrl(paramA,paramB,paramC) %}{{paramA}}{{paramB}}{{paramC}}from=macro{% endmacro %}
Go语言的应用Go语言由Google公司开发go语言iris,并于2009年开源,相比Java/Python/C等语言,Go尤其擅长并发编程,性能堪比C语言,开发效率肩比Python,被誉为“21世纪的C语言” 。
Go语言在云计算、大数据、微服务、高并发领域应用应用非常广泛 。BAT大厂正在把Go作为新项目开发的首选语言 。
Go语言应用范围go语言iris:
1、服务端开发:以前go语言iris你使用C或者C++做的那些事情,用Go来做很合适,例如日志处理、文件系统、监控系统等;
2、DevOps:运维生态中的Docker、K8s、prometheus、grafana、open-falcon等都是使用Go语言开发;
3、网络编程:大量优秀的Web框架如Echo、Gin、Iris、beego等,而且Go内置的 net/http包十分的优秀;
4、Paas云平台领域:Kubernetes和Docker Swarm等;
5、分布式存储领域:etcd、Groupcache、TiDB、Cockroachdb、Influxdb等;
6、区块链领域:区块链里面有两个明星项目以太坊和fabric都使用Go语言;
7、容器虚拟化:大名鼎鼎的Docker就是使用Go语言实现的;
8、爬虫及大数据:Go语言天生支持并发,所以十分适合编写分布式爬虫及大数据处理 。
Go语言做Web应用开发的框架 , 哪一个更适合入门Revel Web开源框架
个高效的Go语言Web开发框架, 其思路完全来自 Java 的 Play Framework 。
特点
热编译,简单可选,同步(每个请求都创建自己的goroutine来处理 。
Go语言Web框架:beego
一个用Go开发的应用框架,思路来自于tornado , 路由设计来源于sinatra 。
支持特性
MVC;
REST;
智能路由;
日志调试;
配置管理;
模板自动渲染;
layout设计;
中间件插入逻辑;

推荐阅读