IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> Beego框架 MVC Controller 参数设置、路由设置 -> 正文阅读

[网络协议]Beego框架 MVC Controller 参数设置、路由设置

下图是Beego MVC框图
在这里插入图片描述

参数设置

beego 目前支持 INI、XML、JSON、YAML 格式的配置文件解析,但是默认采用了 INI 格式解析,用户可以通过简单的配置就可以获得很大的灵活性。

默认配置解析

beego 默认会解析当前应用下的 conf/app.conf 文件
通过这个文件你可以初始化很多 beego 的默认参数:
在这里插入图片描述
它们都维护在结构体 beego/server/web#Config 。

上面这些参数会替换 beego 默认的一些参数, beego 的参数主要有哪些呢?请参考https://godoc.org/github.com/beego/beego#pkg-constants

BConfig 就是 beego 里面的默认的配置,也是结构体 beego/server/web#Config 的实例。

你也可以直接通过web.BConfig.AppName="beepkg"这样来修改,和上面的配置效果一样,只是一个在代码里面写死了,而配置文件就会显得更加灵活。

也可以在配置文件中填写数据库相关信息
在这里插入图片描述
在这里插入图片描述
其余的参数设置,比如API和多配置文件啥的可以看手册

路由设置

beego 存在三种方式的路由:固定路由、正则路由、自动路由

看到路由这里其实我人是有点晕的,不是之前看框图是只有三种路由方式嘛,怎么文档中突然多了基础路由啥的,其实呢Beego用的路由是RESTful Controller 路由

RESTful是什么?
简单来讲RESTful 是一种目前 API 开发中广泛采用的形式,beego 默认就是支持这样的请求方法,也就是用户 Get 请求就执行 Get 方法,Post 请求就执行 Post 方法。因此默认的路由是这样 RESTful 的请求方式。

基础路由是一种请求写个路由,POST请求写个POST路由,就比较麻烦,RESTful是把各种请求的路由变成方法,请求是什么,就调用哪个路由方法

首先认识下项目结构
MVC结构嘛,肯定会有Models,View,Controller,我这没有View,是因为我搞得前后端分离的api
routers就是跟路由相关的东西了
在这里插入图片描述

如何添加路由

前面的都是路径,我箭头指向的哪个就是方法(自己创建的)
在这里插入图片描述
在这里插入图片描述
然后我重写了Get方法,注释没改,注释这里会自动生成代码的,后续会说,那么我这个路由就是让页面输出u.TplName字符串
在这里插入图片描述
在这里插入图片描述

Beego自动生成代码在哪里体现

注意注释!自动生成代码根据注释来的
上面
在这里插入图片描述

固定路由

固定路由也就是全匹配的路由
默认格式:
beego “github.com/beego/beego/v2/server/web”
因为import 的时候beego "github.com/beego/beego/v2/server/web"所以beego就相当于web
在这里插入图片描述

正则路由

正则路由就是能够让我们更灵活的匹配内容,并且减少开发者的代码量

手册中有很多种写法,我拿第一种写法试了下(手册中的双引号是中文 😃)
web.Router("/api/?:id", &controllers.RController{})
默认匹配 //例如对于URL”/api/123”可以匹配成功,此时变量”:id”值为”123”,URL”/api/“可正常匹配

可以在 Controller 中通过如下方式获取上面的变量:
this.Ctx.Input.Param(":id")

在router.go中加上beego.Router("/api/?:id", &controllers.MyTestController{})
后在Get请求中添加获取id后输出到页面
在这里插入图片描述
效果图:
在这里插入图片描述

自定义方法及 RESTful 规则

上面列举的是默认的请求方法名(请求的 method 和函数名一致,例如 GET 请求执行 Get 函数,POST 请求执行 Post 函数),如果用户期望自定义函数名,那么可以使用如下方式:
web.Router("/",&IndexController{},"*:Index")

使用第三个参数,第三个参数就是用来设置对应 method 到函数名,定义如下

  • *表示任意的 method 都执行该函数
  • 使用 httpmethod:funcname 格式来展示
  • 多个不同的格式使用 ; 分割
  • 多个 method 对应同一个 funcname,method 之间通过 , 来分割

咱先说下我试这个的时候我犯的一个傻逼错误
‘GetHello’ method doesn’t exist in the controller MyTestController
说我没有这个方法,然后我发现方法的接收者是别的结构体…

首先在router中添加beego.Router("/api/food", &controllers.MyTestController{}, “Get:GetHello”)
也就是用户访问127.0.0.1:8080/api/food的时候,如果是Get请求去执行GetHello这个方法
再去Controller中添加这个方法即可
在这里插入图片描述

自动匹配

咱们首先要注册自动路由
beego.AutoRouter(&controllers.MyTestController{})

那么 beego 就会通过反射获取该结构体中所有的实现方法,你就可以通过如下的方式访问到对应的方法中:
/MyTest/GetHello调用 MyTestController 中的 GetHello方法
/MyTest/GetFunc调用 MyTestController 中的 GetFunc方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

自动获取后缀名

只能获取html,xml,json
还可以自动
在这里插入图片描述
在这里插入图片描述

注解路由

beego创建项目,router中init就是注解路由,查文档使用就行
在这里插入图片描述

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-02-26 12:07:35  更:2022-02-26 12:08:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:43:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码