首頁 > 後端開發 > Golang > 主體

Beego開發實務-從發布部落格到線上商城

王林
發布: 2023-06-23 10:58:45
原創
1051 人瀏覽過

Beego是一個基於Go語言的Web開發框架,它有著簡單易用、高效穩定、快速開發的特點,被越來越多的開發者所青睞和使用。在本篇文章中,將介紹如何使用Beego框架從發布部落格到建立線上商城。

一、部落格發佈

  1. Beego的安裝與設定

首先,我們需要在本機環境中安裝並設定Beego框架。可以透過以下命令進行安裝:

go get -u github.com/astaxie/beego
go get -u github.com/beego/bee
登入後複製

安裝完成後,透過bee new命令建立一個新項目,如下:

bee new blog
登入後複製

在產生的項目中,config資料夾中的app.conf文件是Beego的主要設定文件,我們可以在其中進行連接埠、資料庫、日誌等方面的配置。

  1. 編寫程式碼

在產生的專案中,controllers資料夾中的檔案是Beego的控制器程式碼,我們可以在其中編寫我們需要的業務邏輯。例如,我們需要建立一個部落格的model和controller:

// models/blog.go
type Blog struct {
    Id int
    Title string
    Content string
    Created time.Time
}

// controllers/blog.go
type BlogController struct {
    beego.Controller
}

func (this *BlogController) Get() {
    // 查询所有博客并渲染到页面
    blogs := models.GetAllBlogs()
    this.Data["blogs"] = blogs
    this.TplName = "blog.tpl"
}

func (this *BlogController) Post() {
    // 新建一篇博客
    title := this.GetString("title")
    content := this.GetString("content")

    blog := models.Blog{
        Title:   title,
        Content: content,
        Created: time.Now(),
    }

    models.AddBlog(&blog)

    this.Redirect("/blog", 302)
}
登入後複製

在以上程式碼中,我們建立了一個Blog的model,在controller中實作了取得所有部落格和新增部落格的邏輯。

  1. 視圖渲染

Beego使用Go語言的範本引擎來實現視圖渲染,視圖檔案通常保存在views資料夾中。在本例中,我們可以建立一個blog.tpl文件,渲染頁面顯示部落格清單和新增部落格的表單:

<!DOCTYPE html>
<html>
<head>
    <title>Blog</title>
</head>
<body>
    <h1>All Blogs</h1>
    {{range .blogs}}
        <h2>{{.Title}}</h2>
        <p>{{.Content}}</p>
        <p>{{.Created}}</p>
    {{end}}
    <h1>New Blog</h1>
    <form method="post" action="/blog">
        <label>Title:</label>
        <input type="text" name="title"/><br/>
        <label>Content:</label>
        <textarea name="content"></textarea>
        <br/>
        <input type="submit" name="submit" value="Submit"/>
    </form>
</body>
</html>
登入後複製

其中,{{range .blogs}}語句用來循環渲染所有博客, {{.Title}}、{{.Content}}、{{.Created}}語句用來渲染特定的部落格資訊。

  1. 執行程式

執行程式前需要先建立或設定好資料庫,可以在app.conf檔中設定資料庫連線資訊。完成設定後,使用以下命令執行程式:

bee run
登入後複製
登入後複製

在瀏覽器中造訪localhost:8080/blog即可查看部落格清單。

二、線上商城

除了部落格發佈功能,我們還可以使用Beego框架來開發線上商城。以下是一個簡單的範例。

  1. Beego的安裝和設定

同樣,我們需要先在本機環境中安裝和設定Beego框架,在本例中,我們使用以下指令安裝:

go get github.com/astaxie/beego
go get github.com/beego/bee
登入後複製

並透過bee new指令來建立一個新專案:

bee new shop
登入後複製

在產生的專案中,config資料夾中的app.conf檔案是Beego的主要設定檔。我們可以在其中進行連接埠、資料庫、日誌等方面的配置。

  1. 編寫程式碼

在產生的專案中,controllers資料夾中的檔案是Beego的控制器程式碼,我們可以在其中編寫我們需要的業務邏輯。

// models/goods.go
type Goods struct {
    Id int
    Name string
    Price float64
    Created time.Time
}

// controllers/default.go
type MainController struct {
    beego.Controller
}

func (c *MainController) Get() {
    c.Data["Website"] = "myshop"
    c.Data["Email"] = "myshop@gmail.com"
    c.TplName = "index.tpl"
}

type GoodsController struct {
    beego.Controller
}

func (this *GoodsController) Add() {
    name := this.GetString("name")
    price, _ := this.GetFloat("price", 0.0)

    goods := models.Goods{
        Name:      name,
        Price: price,
        Created: time.Now(),
    }

    models.AddGoods(&goods)

    this.Redirect("/", 302)
}

func (this *GoodsController) GetAll() {
    goods := models.GetAllGoods()
    this.Data["json"] = &goods
    this.ServeJSON()
}
登入後複製

以上程式碼中我們創建了一個Goods的model,在controller中實作了取得所有商品、新增商品的邏輯。在MainController中實現了展示首頁的邏輯。

  1. 資料庫操作

在新增、取得商品時,我們需要連接資料庫,可以透過Beego自帶的ORM來實現。在models資料夾中新建一個database.go文件,實現初始化資料庫的連接:

package models

import (
    "github.com/astaxie/beego/orm"
    _ "github.com/go-sql-driver/mysql"
)

func RegisterDB() {
    orm.RegisterDriver("mysql", orm.DRMySQL)
    orm.RegisterDataBase("default", "mysql", "root:@tcp(127.0.0.1:3306)/shop?charset=utf8", 30)
}
登入後複製

在新增商品和取得商品時,我們可以透過以下程式碼實現:

func AddGoods(goods *Goods) (int64, error) {
    if err := orm.NewOrm().Read(&goods); err == nil {
        return 0, errors.New("Goods already exists")
    }
    id, err := orm.NewOrm().Insert(goods)
    return id, err
}

func GetAllGoods() []*Goods {
    var goods []*Goods
    orm.NewOrm().QueryTable("goods").All(&goods)
    return goods
}
登入後複製
  1. #視圖渲染

Beego使用Go語言的模板引擎來實現視圖渲染,視圖檔案通常保存在views資料夾中。在本例中,我們可以建立一個index.tpl文件,展示線上商城首頁:

<!DOCTYPE html>
<html>
<head>
    <title>{{.Website}}</title>
</head>
<body>
    <h1>Welcome to {{.Website}}!</h1>
    <h2>Add Goods:</h2>
    <form action="/goods/add" method="post">
        <input type="text" name="name">
        <input type="number" name="price" step="0.01">
        <input type="submit" value="Add">
    </form>
    <h2>All Goods:</h2>
    <table border="1">
        <tr>
            <td>Id</td>
            <td>Name</td>
            <td>Price</td>
            <td>Created</td>
        </tr>
        {{range .goods}}
        <tr>
            <td>{{.Id}}</td>
            <td>{{.Name}}</td>
            <td>{{.Price}}</td>
            <td>{{.Created}}</td>
        </tr>
        {{end}}
    </table>
</body>
</html>
登入後複製

其中,{{range .goods}}語句用來循環渲染所有商品。

  1. 執行程式

在完成程式碼和範本的編寫後,使用下列命令啟動程式:

bee run
登入後複製
登入後複製

在瀏覽器中存取localhost:8080 ,即可查看線上商城首頁,新增商品並查看所有商品。可以透過執行以下命令產生自包含的可執行檔:

bee pack
登入後複製

以上就是使用Beego框架從發布部落格到線上商城的完整實踐過程,希望對正在學習Beego的開發者有所幫助。

以上是Beego開發實務-從發布部落格到線上商城的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!