Go html/template versue Python Jinja2 - Arrays and Slices
Go html/template
Python Jinja2
template:
{{ range $ link := .}}
< a href = "{{$link.Href}}" >{{ $ link . Name }}< / a >
{{ end }}
template:
{ % for link in links % }
< a href = "{{link.href}}" > {{ link . name }} </ a >
{ % endfor % }
template values:
type Link struct {
Name string
Href string
}
// arrays
var la [ 2 ] Link
la [ 0 ] = Link { "Google" , "https://www.google.com/" }
la [ 1 ] = Link { "Facebook" , "https://www.facebook.com/" }
// slices
var ls [] Link
ls = append ( ls , Link { "Google" , "https://www.google.com/" })
ls = append ( ls , Link { "Facebook" , "https://www.facebook.com/" })
template values:
links = [
{ 'name' : 'Google' , 'href' : 'https://www.google.com' },
{ 'name' : 'Facebook' , 'href' : 'https://www.facebook.com' }
]
Complete Go html/template source code:
html-template-example-2.go |
repository |
view raw
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 package main
import (
"html/template"
"os"
)
const tmpl = `
{{range $link := .}}
<a href="{{$link.Href}}">{{$link.Name}}</a>
{{end}}
`
type Link struct {
Name string
Href string
}
func main () {
// arrays
var la [ 2 ] Link
la [ 0 ] = Link { "Google" , "https://www.google.com/" }
la [ 1 ] = Link { "Facebook" , "https://www.facebook.com/" }
t , _ := template . New ( "foo" ). Parse ( tmpl )
t . Execute ( os . Stdout , la )
// slices
var ls [] Link
ls = append ( ls , Link { "Google" , "https://www.google.com/" })
ls = append ( ls , Link { "Facebook" , "https://www.facebook.com/" })
t . Execute ( os . Stdout , ls )
}
Complete Python Jinja2 source code:
jinja2-example-2.py |
repository |
view raw
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 #!/usr/bin/env python
# -*- coding:utf-8 -*-
from jinja2 import Template
import sys
tmpl = """
{ % f or link in links %}
<a href="{{link.href}}">{{link.name}}</a>
{ % e ndfor %}
"""
if __name__ == '__main__' :
links = [
{ 'name' : 'Google' , 'href' : 'https://www.google.com' },
{ 'name' : 'Facebook' , 'href' : 'https://www.facebook.com' }
]
t = Template ( tmpl )
sys . stdout . write ( t . render ( links = links ))
Tested on: Ubuntu Linux 14.10 , Go 1.4 , Python 2.7.8 , Jinja2 2.7.3
Golang html/template versus Python Jinja2 series: