Heim  >  Artikel  >  Backend-Entwicklung  >  Beego-Entwicklungspraxis – vom Verlagsblog zum Online-Einkaufszentrum

Beego-Entwicklungspraxis – vom Verlagsblog zum Online-Einkaufszentrum

王林
王林Original
2023-06-23 10:58:451022Durchsuche

Beego ist ein Webentwicklungs-Framework, das auf der Go-Sprache basiert. Es ist einfach zu verwenden, effizient, stabil und wird von immer mehr Entwicklern bevorzugt. In diesem Artikel stellen wir vor, wie Sie das Beego-Framework von der Veröffentlichung eines Blogs bis zum Aufbau eines Online-Einkaufszentrums verwenden.

1. Blog-Veröffentlichung

  1. Installation und Konfiguration von Beego

Zuerst müssen wir das Beego-Framework in der lokalen Umgebung installieren und konfigurieren. Es kann mit dem folgenden Befehl installiert werden:

go get -u github.com/astaxie/beego
go get -u github.com/beego/bee

Nach Abschluss der Installation erstellen Sie mit dem Befehl bee new ein neues Projekt wie folgt:

bee new blog

Im generierten Projekt gehört die Datei app.conf im Konfigurationsordner Beego Hauptkonfigurationsdatei. Wir können darin Ports, Datenbanken, Protokolle usw. konfigurieren.

  1. Code schreiben

Im generierten Projekt sind die Dateien im Controller-Ordner der Controller-Code von Beego, in den wir die Geschäftslogik schreiben können, die wir benötigen. Zum Beispiel müssen wir ein Blog-Modell und einen Controller erstellen:

// 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)
}

Im obigen Code erstellen wir ein Blog-Modell und implementieren die Logik zum Abrufen aller Blogs und zum Hinzufügen neuer Blogs im Controller.

  1. View-Rendering

Beego verwendet die Go-Sprachvorlagen-Engine, um View-Rendering zu implementieren. View-Dateien werden normalerweise im View-Ordner gespeichert. In diesem Beispiel können wir eine blog.tpl-Datei erstellen und die Seite rendern, um die Blog-Liste und das Formular zum Hinzufügen neuer Blogs anzuzeigen:

<!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>

Unter anderem wird die {{range .blogs}}-Anweisung zum Rendern aller Blogs verwendet In einer Schleife werden die Anweisungen {{.Title }}, {{.Content}} und {{.Created}} verwendet, um bestimmte Blog-Informationen darzustellen.

  1. Führen Sie das Programm aus

Sie müssen eine Datenbank erstellen oder konfigurieren, bevor Sie das Programm ausführen. Sie können die Datenbankverbindungsinformationen in der Datei app.conf festlegen. Verwenden Sie nach Abschluss der Konfiguration den folgenden Befehl, um das Programm auszuführen:

bee run

Besuchen Sie localhost:8080/blog im Browser, um die Blogliste anzuzeigen.

2. Online-Einkaufszentrum

Zusätzlich zur Blog-Veröffentlichungsfunktion können wir auch das Beego-Framework verwenden, um ein Online-Einkaufszentrum zu entwickeln. Hier ist ein einfaches Beispiel.

  1. Beego-Installation und -Konfiguration

Ebenso müssen wir zuerst das Beego-Framework in der lokalen Umgebung installieren und konfigurieren. In diesem Beispiel verwenden wir den folgenden Befehl zur Installation:

go get github.com/astaxie/beego
go get github.com/beego/bee

und erstellen ein neues Projekt über die Biene Neuer Befehl:

bee new shop

Im generierten Projekt ist die Datei app.conf im Konfigurationsordner die Hauptkonfigurationsdatei von Beego. Wir können darin Ports, Datenbanken, Protokolle usw. konfigurieren.

  1. Code schreiben

Im generierten Projekt sind die Dateien im Controller-Ordner der Controller-Code von Beego, in den wir die Geschäftslogik schreiben können, die wir benötigen.

// 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()
}

Im obigen Code haben wir ein Warenmodell erstellt und die Logik zum Abrufen aller Produkte und zum Hinzufügen neuer Produkte im Controller implementiert. Die Logik zur Anzeige der Homepage ist im MainController implementiert.

  1. Datenbankbetrieb

Beim Hinzufügen und Erhalten von Produkten müssen wir eine Verbindung zur Datenbank herstellen, was über Beegos eigenes ORM erreicht werden kann. Erstellen Sie eine neue Datenbank.go-Datei im Modellordner, um die Datenbankverbindung zu initialisieren:

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)
}

Beim Hinzufügen neuer Produkte und beim Erhalten von Produkten können wir dies über den folgenden Code implementieren:

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. View-Rendering

Beego verwendet das Go Sprache Zur Implementierung der Ansichtswiedergabe wird eine Vorlagen-Engine verwendet. Ansichtsdateien werden normalerweise im Ansichtenordner gespeichert. In diesem Beispiel können wir eine index.tpl-Datei erstellen, um die Homepage des Online-Einkaufszentrums anzuzeigen:

<!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>

Darunter wird die {{range .goods}}-Anweisung verwendet, um alle Produkte in einer Schleife darzustellen.

  1. Führen Sie das Programm aus

Nachdem Sie mit dem Schreiben des Codes und der Vorlage fertig sind, verwenden Sie den folgenden Befehl, um das Programm zu starten:

bee run

Besuchen Sie localhost:8080 im Browser, um die Homepage des Online-Einkaufszentrums anzuzeigen, Produkte hinzuzufügen und alle Produkte anzuzeigen. Sie können eine eigenständige ausführbare Datei generieren, indem Sie den folgenden Befehl ausführen:

bee pack

Das Obige ist der vollständige praktische Prozess der Verwendung des Beego-Frameworks von der Veröffentlichung eines Blogs bis hin zu einem Online-Einkaufszentrum. Ich hoffe, dass es für Entwickler, die lernen, hilfreich ist Beego.

Das obige ist der detaillierte Inhalt vonBeego-Entwicklungspraxis – vom Verlagsblog zum Online-Einkaufszentrum. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn