name: model 逻辑

sort: 4

model 分析

我们知道 Web 应用中我们用的最多的就是数据库操作,而 model 层一般用来做这些操作,我们的 bee new 例子不存在 Model 的演示,但是 bee api 应用中存在 model 的应用。说的简单一点,如果您的应用足够简单,那么 Controller 可以处理一切的逻辑,如果您的逻辑里面存在着可以复用的东西,那么就抽取出来变成一个模块。因此 Model 就是逐步抽象的过程,一般我们会在 Model 里面处理一些数据读取,如下是一个日志分析应用中的代码片段:

  1. package models
  2. import (
  3. "loggo/utils"
  4. "path/filepath"
  5. "strconv"
  6. "strings"
  7. )
  8. var (
  9. NotPV []string = []string{"css", "js", "class", "gif", "jpg", "jpeg", "png", "bmp", "ico", "rss", "xml", "swf"}
  10. )
  11. const big = 0xFFFFFF
  12. func LogPV(urls string) bool {
  13. ext := filepath.Ext(urls)
  14. if ext == "" {
  15. return true
  16. }
  17. for _, v := range NotPV {
  18. if v == strings.ToLower(ext) {
  19. return false
  20. }
  21. }
  22. return true
  23. }

所以如果您的应用足够简单,那么就不需要 Model 了;如果你的模块开始多了,需要复用,需要逻辑分离了,那么 Model 是必不可少的。接下来我们将分析如何编写 View 层的东西。

view 渲染