使用Beego框架

本文介绍了选择Beego框架的原因,它是一个简单且稳定的MVC框架,适用于开发博客等简单项目。文中详细讲解了Beego中Controller层的写法,包括上传图片的业务逻辑和返回模板的方法,并说明了如何在routers包下注册controller来使方法生效。
摘要由CSDN通过智能技术生成

为什吗是beego

首先此框架是一个简单稳定的框架,使用的也比较广泛了,有一些比较简单的项目如博客及其他一些简单的项目完全可以使用此框架进行开发

beego 是一个典型的 MVC 架构,它的执行逻辑如下图所示:

controller层的写法

如下一下就是上传图片的业务逻辑

package controllers

import (
	"fmt"
	"github.com/astaxie/beego"
	"os"
)

type ImageUploadController struct {
	beego.Controller
}

// 文章更新 数据校验  路由 /api/article/update
func (this *ImageUploadController) ImageUpload() {
	// 获取文件信息
	file, information, err := this.GetFile("editormd-image-file")
	if err != nil {
		beego.Info(err)
	}
	file.Close()
	// 文件名
	fileName := information.Filename
	fmt.Println("上传图片名称", fileName)

	// 日期字符串
	//dateStr := beego.Date(time.Now(), "Ymd")
	// 创建文件夹
	filePath := "./static/uploads/"                       //+ dateStr
	if err1 := os.MkdirAll(filePath, 0777); err1 != nil { // 创建数据库目录
		panic("failed" + err.Error())
	}
	// folderPath := p.CreateDateDir("/static/uploads/")
	// 移动文件到创建好的文件夹内
	err2 := this.SaveToFile("editormd-image-file", filePath+"/"+fileName)
	if err2 == nil { // 如果没错,返回url,success,message
		this.Data["json"] = map[string]interface{}{
			"url":     "/static/uploads/" + "/" + fileName,
			"success": 1,
			"message": "upload success!",
		}
		this.ServeJSON()
	}
}

在写一个返回模版的方法

//首页
func (this *FrontendController) Index() {
	page, _ := this.GetInt64("page")
	pageSize := tools.StringToInt64(models.GetOneConfig("PageSize"))
	if page < 1 {
		page = 1
	}
	list, count := models.LimitArticleDisplay(page, pageSize)
	this.Data["paging"] = tools.CreatePaging(page, pageSize, count)
	this.Data["list"] = list
	this.Data["config"] = models.ConfigList()
	this.Data["page"] = page
	this.Layout = layout
	this.TplName = theme + "/index.html"
}

上面的this.TplName就是我们在view包地下的路径,按此进行请求则可以看到制定的页面

注册,controller写完之后需要注册一下,在routers包下面

package routers

import (
	"GoMD/controllers"
	"github.com/astaxie/beego"
)

func init() {

	//更新图片
	beego.Router("/uploadfile", &controllers.ImageUploadController{}, "post:ImageUpload")

}

通过上面内容,更新图片的方法就会被注册了,此方法才可以正常被使用

按上诉步骤则可以实现一个请求了

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值