如果可以匹配URl,那么beego也可以生成URL吗?当然可以。

UrlFor()函数就是用于构建执行函数的URL的。它把对应控制器和函数名结合的字符串作为第一个参数,其余参数对应URL中的变量。未知变量将添加到URL中作为查询参数。

下面定义了一个相应的控制器

  1. type TestController struct {
  2. beego.Controller
  3. }
  4.  
  5. func (this *TestController) Get() {
  6. this.Data["Username"] = "astaxie"
  7. this.Ctx.Output.Body([]byte("ok"))
  8. }
  9.  
  10. func (this *TestController) List() {
  11. this.Ctx.Output.Body([]byte("i am list"))
  12. }
  13.  
  14. func (this *TestController) Params() {
  15. this.Ctx.Output.Body([]byte(this.Ctx.Input.Params()["0"] + this.Ctx.Input.Params()["1"] + this.Ctx.Input.Params()["2"]))
  16. }
  17.  
  18. func (this *TestController) Myext() {
  19. this.Ctx.Output.Body([]byte(this.Ctx.Input.Param(":ext")))
  20. }
  21.  
  22. func (this *TestController) GetUrl() {
  23. this.Ctx.Output.Body([]byte(this.UrlFor(".Myext")))
  24. }

  

下面是我们注册的路由:

  1. beego.Router("/api/list", &TestController{}, "*:List")
  2. beego.Router("/person/:last/:first", &TestController{})
  3. beego.AutoRouter(&TestController{})

  

那么通过方式可以获取相应的URL地址:

  1. beego.URLFor("TestController.List")
  2. // 输出 /api/list
  3.  
  4. beego.URLFor("TestController.Get", ":last", "xie", ":first", "asta")
  5. // 输出 /person/xie/asta
  6.  
  7. beego.URLFor("TestController.Myext")
  8. // 输出 /Test/Myext
  9.  
  10. beego.URLFor("TestController.GetUrl")
  11. // 输出 /Test/GetUrl

  

模板中如何使用

默认情况下,beego已经注册了urlfor函数,用户可以通过如下的代码进行调用

  1. {{urlfor "TestController.List"}}

  

为什么不把URL写死在模板中,反而要动态构建?有两个很好的理由:

(1)反向解析通常比硬编码URL更直观。同时,更重要的是你可以只在一个地方改变URL,而不用到处找。

(2)URL创建会为你处理特殊字符的转义和Unicode数据。

beego——URL构建的更多相关文章

  1. Flask URL构建

    Flask URL构建 url_for()函数对于动态构建特定函数的URL非常有用.该函数接受函数的名称作为第一个参数,以及一个或多个关键字参数,每个参数对应于URL的变量部分. 以下脚本演示了如何使 ...

  2. iOS通过URL构建UIImage

    很多时候我们只能得到一个URL,然后需要构建一个UIImage. 通常情况下,我们一般都是通过SDWebImage来直接构建UIImageVIew的image,如何用URL直接构建UIImage呢? ...

  3. Java高级编程之URL处理

    Java URL处理 URL(Uniform Resource Locator)中文名为统一资源定位符,有时也被俗称为网页地址.表示为互联网上的资源,如网页或者FTP地址. 本章节我们将介绍Java是 ...

  4. Java 网络编程(三) 创建和使用URL访问网络上的资源

    链接地址:http://www.cnblogs.com/mengdd/archive/2013/03/09/2951877.html 创建和使用URL访问网络上的资源 URL(Uniform Reso ...

  5. Maven-项目构建技术(工具)

    Maven-项目构建技术(工具) 主要的内容目标:如何创建项目.如何导入jar.如何进行其他配置.如何管理生命周期 今天的主要安排: maven的概述(为什么要用?是什么) 快速入门(配置.名词解释. ...

  6. 构建简单的json树形菜单

    json结构: var Menu = [{ tit:"一级菜单", submenu:[{ tit:"二级菜单", url:"", func: ...

  7. Jenkins自动构建的几种方式

    1.远程URL构建 在任务配置处的构建触发器中选择远程触发,例如,在下图框中输入abc,则只需要在网页上输入地址:Jenkins_URL/job/工程名/build?token=abc 2.利用cur ...

  8. Docker技术入门与实战 第二版-学习笔记-2-镜像构建

    3.利用 commit 理解镜像构成 在之前的例子中,我们所使用的都是来自于 Docker Hub 的镜像. 直接使用这些镜像是可以满足一定的需求,而当这些镜像无法直接满足需求时,我们就需要定制这些镜 ...

  9. 2 URL的玩法

    preface 这里我主要说说flask的URL玩法 include: 动态URL规则 自定义URL转换器 HTTP方法 唯一的URL 构造URL 跳转和重定向 动态URL规则 URL规则可以添加变量 ...

随机推荐

  1. C++11 中function和bind以及lambda 表达式的用法

    关于std::function 的用法:  其实就可以理解成函数指针 1. 保存自由函数 void printA(int a) { cout<<a<<endl; } std:: ...

  2. libubox-blob/blobmsg

    大部分内容来自libubox [3] - BLOB BLOGMSG,推荐阅读原文. blob提供二进制数据处理能力.有几种支持的数据类型,并可以创建块数据在socket上发送.整型数字会在libubo ...

  3. 最纯粹的直播技术实战02-Camera的处理以及推流

    最纯粹的直播技术实战02-Camera的处理以及推流 最新实战教程.Android自己主动化刷量.作弊与防作弊.案例:刷友盟统计.批量注冊苹果帐号 这个系列的文章将会研究最纯粹的Android直播的实 ...

  4. curl myip.ipip.net curl ip.cn curl cip.cc

    [命令行] curl查询公网出口IP 2016年07月22日 14:27:02 阅读数:19022 不管是在家里还是办公室,或者是公司的主机,很多时候都是在内网中,也就是说很多都是通过 NAT上网的, ...

  5. easyUI的column的field的颜色属性

     {field:'hasPrintStr',title:'状态',width:10,halign:'center',align:'right',styler: function(value,row,i ...

  6. Softmatic ScreenLayers 将截图存为psd格式

    Softmatic ScreenLayers 是 Mac 上的一款截图软件,它与众不同的地方是可以将截取的屏幕图片按PSD格式保存到本地,并且图片里的每一种元素都被单独放入一个独立的layer,比如M ...

  7. PHP-preg_replace过滤字符串代码

    $str=preg_replace("/\s+/", " ", $str); //过滤多余回车       $str=preg_replace("/& ...

  8. java web 页面提速

    记得面试现在这份工作的时候,一位领导语重心长地谈道——当今的世界是互联网的世界,IT企业之间的竞争是很激烈的,如果一个网页的加载和显示速度,相比别人的站点页面有那么0.1秒的提升,那也是很大的一个成就 ...

  9. 图表 Chart

    工作中,需要实现如下的图表,查阅了不少的资料,问了不少的人,下面对下图表的实现代码做下讲解. 实现代码: chart1.Series.Clear();//清空图表中的序列,图表中有默认的序列 //ch ...

  10. MathType可以在Word、PPT中插入矩阵吗

    工科学生或者老师在写论文时最头痛的就是编辑公式,因为word自带的公式编辑器往往满足不了专业的公式需求,MathType就很好的解决了这个问题.在进行公式编辑时,难免会遇到输入矩阵的情况,那么怎么输入 ...