. 1 paquete principal 2 . 3 Import ( . 4 " HTML / Plantilla " . 5 " Math / RAND " . 6 " NET / HTTP " . 7 " Time " . 8 ) . 9 10 Proceso FUNC (http.ResponseWriter W, R ^ * http.Request) { . 11 T : = template.Must (template.ParseFiles ( " tmpl.html " )) // analizar el archivo para generar un modelo para elaborar un objeto 12 / * 13 función rand.Intn () es una función pseudo-aleatoria, independientemente del número de carreras solo devolverán el mismo de números aleatorios, ya que es un valor único recurso predeterminado, 14 Hay que llamar rand.Seed (), y un cambio en el valor pasado como parámetro, como time.Now (). UnixNano (), está siempre cambiando los valores pueden ser generados. 15 * / 16 rand.Seed (Time.now ( ) .Unix ()) . 17 t.Execute (W, rand.Intn ( 10 )> . 5 ) // vuelve bool valor 18 es . 19 // t.Execute (W, "Hello World") // uso de datos de escritura para hacer la W 20 es // Si la plantilla es un conjunto de la siguiente método especificado se invoca para hacer que la plantilla 21 es // t.ExecuteTemplate (W, "tmpl.html", "HelloWorld") 22 es } 23 es 24 // iteración 25 FUNC tmplRange (W http.ResponseWriter, R & lt * http.Request) { 26 es T: = template.Must (template.ParseFiles ( " tmplrange.html " )) // analizar la generación de archivo de plantilla formulación objeto 27 // crear una cadena de matriz 28 DayOfWeek: = [] Cadena { " lun " , " mar " , " Wen " " jue " " vie " " SAT " " Sun " } 29 // resultado de escritura 30 t.Execute (W, DAYOFWEEK) 31 } 32 33 es // función 34 es FUNC FormatData (T time.time) Cadena { 35 diseño: = " 2006-01-02 " 36 de retorno t.Format (layout) 37 [ } 38 es 39 FUNC tmplfunc (http.ResponseWriter W, R ^ * HTTP .request) { 40 // crear una función de mapeo funcmap para mapear la ▶ DATA FormatData 41 es funcMap: = {template.FuncMap " ▶ DATA " :} FormatData 42 se // crear una función de mapeado a la plantilla delantera y la plantilla 43 es T: = template.New ( " tmplfunc.html ") .Funcs (funcMap) 44 es // plantilla de análisis sintáctico 45 T, _ = t.ParseFiles ( " tmplfunc.html " ) 46 es // resultado de retorno 47 t.Execute (W, Time.now ()) 48 } 49 50 // anidando las plantillas 51 se FUNC tmplNested (http.ResponseWriter W, R ^ * http.Request) { 52 es T, _: = template.ParseFiles ( " tmpllayout.html " , " tmplcontent.html " ) 53 es t.Execute (W, "" ) 54 es } 55 56 es FUNC main () { 57 http.HandleFunc ( " proceso / " , proceso) 58 http.HandleFunc ( " / gama " , tmplRange) 59 http.HandleFunc ( " / FUNC " , tmplfunc) 60 http.HandleFunc ( " / anidada " , tmplNested) 61 http .ListenAndServe ( " : 8080 " , nil) 62 63 }
// iteración
. 1 <! DOCTYPE HTML> 2 <HTML lang = " ES " > . 3 <head> . 4 <Meta charset = " UTF-8. " > . 5 <title> el título </ title> . 6 </ head> . 7 <body > . 8 <h1 de> ====================================== </ h1 de> . 9 {{ .}} Rango 10 . <Li> {{}} </ Li> . 11 {{}} end 12 es <h1 de> parámetro se puede pasar a otros parámetros intermedios | espaciada </ h1 de> 13 es {{ 12,3456 | printf " %.2f " }} 14</ body> 15 </ html>
// funciones de plantilla
. 1 <! DOCTYPE HTML> 2 <HTML lang = " ES " > . 3 <head> . 4 <Meta charset = " UTF-8. " > . 5 <title> FUNC </ title> . 6 </ head> . 7 < body> . 8 la hora actual es: {. {| el ▶ DATA}} . 9 </ body> 10 </ HTML>
//模板嵌套
1 <! DOCTYPE html> 2 <html lang = " en " > 3 <head> 4 <meta charset = " UTF-8 " > 5 <title> Título </ title> 6 </ head> 7 <body> 8 <h1> ¡Hola mundo! </ h1> 9 </ body> 10 </ html>
1 <! DOCTYPE html> 2 <html lang = " en " > 3 <head> 4 <meta charset = " UTF-8 " > 5 <title> Título </ title> 6 </ head> 7 <body> 8 { {plantilla " tmplcontent.html " }} 9 {{plantilla " ol.html " }} 10 </ body> 11 </ html> 12 13 {{definen " ol.html " }} 14 <OL> 15 <Li> comer </ Li> 16 <Li> sueño </ Li> . 17 <li> Guisantes juego </ Li> 18 es </ OL> . 19 {{}} End