diff --git a/_examples/README.md b/_examples/README.md index 314d254c..71839aa1 100644 --- a/_examples/README.md +++ b/_examples/README.md @@ -124,8 +124,10 @@ * [Basic](view/template_html_0/main.go) * [A simple Layout](view/template_html_1/main.go) * [Layouts: `yield` and `render` tmpl funcs](view/template_html_2/main.go) - * [The `urlpath` tmpl func](view/template_html_3/main.go) - * [The `url` tmpl func](view/template_html_4/main.go) + * The `urlpath` template func + * [HTML](view/template_html_3/main.go) + * [Django](view/template_django_1/main.go) + * [The `url` template func](view/template_html_4/main.go) * [Inject Data Between Handlers](view/context-view-data/main.go) * [Inject Engine Between Handlers](view/context-view-engine/main.go) * [Embedding Templates Into App Executable File](view/embedding-templates-into-app/main.go) diff --git a/_examples/view/template_django_1/main.go b/_examples/view/template_django_1/main.go new file mode 100644 index 00000000..5769cd97 --- /dev/null +++ b/_examples/view/template_django_1/main.go @@ -0,0 +1,63 @@ +package main + +import "github.com/kataras/iris/v12" + +func main() { + app := iris.New() + app.RegisterView(iris.Django("./views", ".html").Reload(true)) + + mypathRoute := app.Get("/mypath", writePathHandler) + mypathRoute.Name = "my-page1" + + mypath2Route := app.Get("/mypath2/{paramfirst}/{paramsecond}", writePathHandler) + mypath2Route.Name = "my-page2" + + mypath3Route := app.Get("/mypath3/{paramfirst}/statichere/{paramsecond}", writePathHandler) + mypath3Route.Name = "my-page3" + + mypath4Route := app.Get("/mypath4/{paramfirst}/statichere/{paramsecond}/{otherparam}/{something:path}", writePathHandler) + // same as: app.Get("/mypath4/:paramfirst/statichere/:paramsecond/:otherparam/*something", writePathHandler) + mypath4Route.Name = "my-page4" + + // same with Handle/Func + mypath5Route := app.Handle("GET", "/mypath5/{paramfirst}/statichere/{paramsecond}/{otherparam}/anything/{something:path}", writePathHandler) + mypath5Route.Name = "my-page5" + + mypath6Route := app.Get("/mypath6/{paramfirst}/{paramsecond}/statichere/{paramThirdAfterStatic}", writePathHandler) + mypath6Route.Name = "my-page6" + + app.Get("/", func(ctx iris.Context) { + // for /mypath6... + paramsAsArray := []string{"theParam1", "theParam2", "paramThirdAfterStatic"} + ctx.ViewData("ParamsAsArray", paramsAsArray) + if err := ctx.View("page.html"); err != nil { + panic(err) + } + }) + + app.Get("/redirect/{namedRoute}", func(ctx iris.Context) { + routeName := ctx.Params().Get("namedRoute") + r := app.GetRoute(routeName) + if r == nil { + ctx.StatusCode(404) + ctx.Writef("Route with name %s not found", routeName) + return + } + + println("The path of " + routeName + "is: " + r.Path) + // if routeName == "my-page1" + // prints: The path of of my-page1 is: /mypath + // if it's a path which takes named parameters + // then use "r.ResolvePath(paramValuesHere)" + ctx.Redirect(r.Path) + // http://localhost:8080/redirect/my-page1 will redirect to -> http://localhost:8080/mypath + }) + + // http://localhost:8080 + // http://localhost:8080/redirect/my-page1 + app.Listen(":8080") +} + +func writePathHandler(ctx iris.Context) { + ctx.Writef("Hello from %s.", ctx.Path()) +} diff --git a/_examples/view/template_django_1/views/page.html b/_examples/view/template_django_1/views/page.html new file mode 100644 index 00000000..6ea673ca --- /dev/null +++ b/_examples/view/template_django_1/views/page.html @@ -0,0 +1,55 @@ + + + + urlpath function - django + + + + + + /mypath +
+
+ + /mypath2/{paramfirst}/{paramsecond} +
+
+ + /mypath3/{paramfirst}/statichere/{paramsecond} +
+
+ + + /mypath4/{paramfirst}/statichere/{paramsecond}/{otherparam}/{something:path} +
+
+ + + /mypath5/{paramfirst}/statichere/{paramsecond}/{otherparam}/anything/{anything:path} +
+
+ + + /mypath6/{paramfirst}/{paramsecond}/statichere/{paramThirdAfterStatic} + + + + \ No newline at end of file diff --git a/_examples/view/template_html_3/main.go b/_examples/view/template_html_3/main.go index c9fcb381..8e02d3a7 100644 --- a/_examples/view/template_html_3/main.go +++ b/_examples/view/template_html_3/main.go @@ -1,4 +1,5 @@ -// Package main an example on how to naming your routes & use the custom 'url path' HTML Template Engine, same for other template engines. +// Package main an example on how to naming your routes & use the custom +// 'url path' HTML Template Engine, same for other template engines. package main import (