beego——URL构建
如果可以匹配URl,那么beego也可以生成URL吗?当然可以。
UrlFor()函数就是用于构建执行函数的URL的。它把对应控制器和函数名结合的字符串作为第一个参数,其余参数对应URL中的变量。未知变量将添加到URL中作为查询参数。
下面定义了一个相应的控制器
type TestController struct {beego.Controller }func (this *TestController) Get() {this.Data["Username"] = "astaxie"this.Ctx.Output.Body([]byte("ok")) }func (this *TestController) List() {this.Ctx.Output.Body([]byte("i am list")) }func (this *TestController) Params() {this.Ctx.Output.Body([]byte(this.Ctx.Input.Params()["0"] + this.Ctx.Input.Params()["1"] + this.Ctx.Input.Params()["2"])) }func (this *TestController) Myext() {this.Ctx.Output.Body([]byte(this.Ctx.Input.Param(":ext"))) }func (this *TestController) GetUrl() {this.Ctx.Output.Body([]byte(this.UrlFor(".Myext"))) }
下面是我们注册的路由:
beego.Router("/api/list", &TestController{}, "*:List") beego.Router("/person/:last/:first", &TestController{}) beego.AutoRouter(&TestController{})
那么通过方式可以获取相应的URL地址:
beego.URLFor("TestController.List") // 输出 /api/listbeego.URLFor("TestController.Get", ":last", "xie", ":first", "asta") // 输出 /person/xie/astabeego.URLFor("TestController.Myext") // 输出 /Test/Myextbeego.URLFor("TestController.GetUrl") // 输出 /Test/GetUrl
模板中如何使用
默认情况下,beego已经注册了urlfor函数,用户可以通过如下的代码进行调用
{{urlfor "TestController.List"}}
为什么不把URL写死在模板中,反而要动态构建?有两个很好的理由:
(1)反向解析通常比硬编码URL更直观。同时,更重要的是你可以只在一个地方改变URL,而不用到处找。
(2)URL创建会为你处理特殊字符的转义和Unicode数据。
转载于:https://www.cnblogs.com/yangmingxianshen/p/10122391.html
beego——URL构建相关推荐
- flask url构建_如何为生产构建构建Flask-RESTPlus Web服务
flask url构建 by Greg Obinna 由格雷格·奥比纳(Greg Obinna) 如何为生产构建构建Flask-RESTPlus Web服务 (How to structure a F ...
- 使用Flurl轻松构建URL并在.NET中进行可测试的HttpClient调用
I posted about using Refit along with ASP.NET Core 2.1's HttpClientFactory earlier this week. Severa ...
- Java URL处理
URL(Uniform Resource Locator)中文名为统一资源定位符,有时也被俗称为网页地址.表示为互联网上的资源,如网页或者FTP地址. 本章节我们将介绍Java是如处理URL的.URL ...
- java 处理 url_Java URL处理 - Java 教程 - 自强学堂
Java URL处理 URL(Uniform Resource Locator)中文名为统一资源定位符,有时也被俗称为网页地址.表示为互联网上的资源,如网页或者FTP地址. 本章节我们将介绍Java是 ...
- jQuery构建路由
buildMUrl:function( path ,params){var url = "/m" + path;var _paramUrl = '';if( params ){// ...
- Docker技术入门与实战 第二版-学习笔记-2-镜像构建
3.利用 commit 理解镜像构成 在之前的例子中,我们所使用的都是来自于 Docker Hub 的镜像. 直接使用这些镜像是可以满足一定的需求,而当这些镜像无法直接满足需求时,我们就需要定制这些镜 ...
- jar 工程我怎么在网页上url访问某一个方法_Java高级编程之URL处理
URL(Uniform Resource Locator)中文名为统一资源定位符,有时也被俗称为网页地址.表示为互联网上的资源,如网页或者FTP地址. 本章节我们将介绍Java是如处理URL的.URL ...
- 外贸独立站开发构建多国语言版本?
0.起源 国内很多厂家都会建立自己的阿里巴巴网站,有出口需求的厂家甚至会建立国际版的阿里巴巴,距我了解每年投入上10w的费用才会有叫好的信誉及排名.很多中小微厂家根本不敢尝试,归其原因无非是费用太大, ...
- android配置多个url,Retrofit中使用多个baseUrl
在使用Retrofit之前需要进行Retrofit的创建,如下: return Retrofit.Builder() .baseUrl(NetClient.getInstance().getNetCo ...
最新文章
- 面试题6:用两个栈实现队列
- 4种趋势将在2021-2021年改变您的数据和分析策略
- [LeetCode] Reverse Linked List I II - 链表翻转问题
- 即将直播:新一代大数据技术构建PB级云端数仓实践
- ssl1104-USACO 2.1城堡(foodfill)【图论,广搜】
- raid5坏了一块盘怎么办_机械硬盘的坏道处理——屏蔽之
- 测试开发之缺陷报告上篇
- 理解 Delphi 的类(十) - 深入方法[15] - 调用其他单元的函数
- java基础学习(4)
- Java给树加子节点个数统计
- kindle paper write1 kindle pw1 安装多看系统 or 原本是多看双系统,升级kindle系统后多看系统消失,解决方法降级kindle系统+重装kindle系统
- 大话functional编程语言
- hdu2037-简单dp
- esp8266之红外报警
- 微信小程序websocket连接
- 分析hanoi塔代码
- mysql计算折纸_折纸飞机实验报告.doc
- 知识付费内容分类和平台解析
- s8 android调用相机,教你如何在安卓手机上使用谷歌 pixel相机
- Mybatis-Plus 官方神器发布!
热门文章
- hbase1.1.1 连接集群_HBase-1.2.1集群搭建
- 【java笔记】of方法 JDK9对集合添加方法的优化
- 剑指 Offer II 006. 排序数组中两个数字之和
- ffmpeg系列-编译
- FFmpeg源代码简单分析:avio_open2()
- 修改oracle安装目录权限设置权限,oracle rac环境,安装目录权限被修改乱了,怎么恢复?...
- Kubernetes 搭建 Kafka 和 Zookeeper 集群(完整教程)
- JVM面试重点总结(二)——垃圾收集器(GC)与内存分配策略
- IDEA修改SVN地址
- IDEA启动项目报错:非法字符: ‘\ufeff‘