Heim  >  Artikel  >  Backend-Entwicklung  >  So erstellen Sie Webanwendungen mit Golang

So erstellen Sie Webanwendungen mit Golang

PHPz
PHPzOriginal
2023-04-13 18:31:351081Durchsuche

In den letzten Jahren hat sich die Go-Sprache (kurz Golang) aufgrund ihrer Effizienz, Einfachheit und Parallelitätssicherheit nach und nach zum Liebling der Webentwicklung entwickelt. Golang ist einfach zu erlernen und zu verwenden und verfügt über eine riesige Basis an Bibliotheken und Frameworks. In diesem Artikel wird erläutert, wie Sie mit Golang Webanwendungen erstellen, einschließlich Routing-Einstellungen, Vorlagenverarbeitung, ORM usw.

  1. Einführung in die Go-Sprache

Go-Sprache ist eine kompilierte Sprache, die von der C-Sprache und der Pascal-Sprache beeinflusst ist und über Funktionen wie statische Typisierung, Garbage Collection, gleichzeitige Programmierung und asynchrone Programmierung verfügt. Die Standardbibliothek von Golang bietet eine Fülle von Funktionen, darunter Vernetzung, Ver- und Entschlüsselung, Ein- und Ausgabe und mehr. Darüber hinaus bietet das Parallelitätsmodell von Golang einzigartige Vorteile, wodurch es sich sehr gut für den Bereich der Webentwicklung eignet.

  1. Erstellen einer Webanwendung

Das Erstellen einer Webanwendung mit Golang erfordert die folgenden Komponenten:

  • Framework: Die Go-Sprache verfügt über viele Frameworks zur Auswahl, z. B. Gin, Beego und Echo usw.
  • Routing: Routing ist eine Schlüsselkomponente in Webanwendungen und verantwortlich für die Steuerung der Zuordnungsbeziehung zwischen URLs und entsprechenden Verarbeitungsfunktionen.
  • Template-Engine: In der Webentwicklung ist es oft notwendig, Daten in Seiten in HTML oder anderen Formaten einzubetten, daher ist eine Template-Engine erforderlich, um diese Aufgaben zu bewältigen.
  • ORM: ORM ist ein leistungsstarkes Datenbankverarbeitungstool.

Als nächstes werden wir das Gin-Framework verwenden, um eine einfache Webanwendung zu erstellen und vorstellen, wie die oben genannten Komponenten darin verwendet werden.

  1. Installieren Sie das Gin-Framework

Zuerst müssen wir das Gin-Framework mit dem folgenden Befehl installieren:

go get -u github.com/gin-gonic/gin

Dieser Befehl lädt den Gin-Framework-Quellcode von Github herunter und installiert ihn unter $GOPATH/src/github.com /gin-gonic/gin-Verzeichnis.

  1. Eine Route erstellen

Die Erstellung einer Route ist ein wichtiger Schritt in einer Webanwendung, da sie die Zuordnung zwischen URLs und entsprechenden Verarbeitungsfunktionen definiert.

In diesem Beispiel erstellen wir zwei Routen:

  • "/": Zeigt die Willkommensseite an
  • "/hello": Zeigt die Hallo-Seite an

In der Datei main.go können wir diese beiden Routings definieren :

package main

import (
    "github.com/gin-gonic/gin"
)

func main() {
    r := gin.Default()

    r.GET("/", func(c *gin.Context) {
        c.JSON(200, gin.H{
            "message": "Welcome to our website!",
        })
    })

    r.GET("/hello", func(c *gin.Context) {
        c.JSON(200, gin.H{
            "message": "Hello there!",
        })
    })

    r.Run(":8080")
}

Um eine Route zu erstellen, verwenden wir die Funktion Default() des Gin-Frameworks, um eine Standard-Routenverarbeitungs-Engine zu erstellen, und verwenden dann die Funktion GET() auf der Routing-Engine, um die Route zu definieren.

  1. Template Engine

Jetzt haben wir zwei Routen und entsprechende Verarbeitungsfunktionen erstellt, aber die Rückgabewerte dieser Funktionen sind Daten im JSON-Format, keine Seiten.

Um diese Daten in HTML-Seiten einzubetten, müssen wir eine Template-Engine verwenden. Golang verfügt über viele verschiedene Template-Engines zur Auswahl, darunter die nativen Text/Template- und HTML/Template-Engines von Go sowie Bibliotheken von Drittanbietern.

In diesem Beispiel verwenden wir die Gin-Vorlage der Drittanbieter-Bibliothek. Dazu müssen wir ein Vorlagenverzeichnis erstellen und darin zwei Vorlagendateien „welcome.html“ und „hello.html“ erstellen:

$ mkdir templates
$ cd templates
$ touch welcome.html hello.html

In diesen beiden Vorlagendateien verwenden wir die Go-Language-Template-Engine ({{.}}), um die entsprechenden zu ändern Variablen HTML-Seite einbetten. In Welcome.html fügen wir eine einfache Willkommensseite hinzu:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Welcome to our website!</title>
</head>
<body>
    <h1>Welcome to our website!</h1>
</body>
</html>

In hello.html fügen wir eine weitere einfache Seite hinzu:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Hello there!</title>
</head>
<body>
    <h1>Hello there!</h1>
</body>
</html>

Jetzt sind wir bereit, diese beiden Vorlagendateien mit Gin Template Embedded in unserer Route-Handler-Funktion zu kombinieren .

In der main.go-Datei fügen wir den folgenden Code hinzu:

import (
    "net/http"
)

// ...

func main() {
    r := gin.Default()

    // 模板设置
    r.LoadHTMLGlob("templates/*")

    r.GET("/", func(c *gin.Context) {
        c.HTML(http.StatusOK, "welcome.html", gin.H{
            "title": "Welcome",
        })
    })

    r.GET("/hello", func(c *gin.Context) {
        c.HTML(http.StatusOK, "hello.html", gin.H{
            "title": "Hello",
        })
    })

    r.Run(":8080")
}

Hier verwenden wir die vom Gin-Framework bereitgestellte LoadHTMLGlob()-Funktion, um die Vorlagendatei zu laden. Dann verwenden wir in der Routing-Verarbeitungsfunktion die Funktion c.HTML(), um die Vorlagendatei und die entsprechenden Daten zusammenzuführen, um die Seite zu rendern.

  1. ORM

In einer Webanwendung müssen Daten auf einem dauerhaften Speichergerät gespeichert werden. ORM (Object Relational Mapping) ist ein Tool, mit dem Entwickler Tabellen und Daten in einer Datenbank Objekten und Klassen in einem Programm zuordnen können.

In diesem Beispiel verwenden wir die ORM-Bibliothek gorm, um eine Verbindung zur Datenbank herzustellen und CRUD-Vorgänge (Erstellen, Lesen, Aktualisieren und Löschen) auszuführen.

Zuerst müssen wir die Gorm-Bibliothek mit dem folgenden Befehl installieren:

go get -u github.com/jinzhu/gorm

Als nächstes können wir die Gorm-Bibliothek verwenden, um verschiedene Datenbankoperationen im Programm auszuführen. Zum Beispiel können wir eine Struktur namens „User“ erstellen und in der Datenbank speichern:

import (
    "github.com/jinzhu/gorm"
    _ "github.com/jinzhu/gorm/dialects/mysql"
)

type User struct {
    gorm.Model
    Name string
    Age  int
}

// ...

func main() {
    // 连接MySQL数据库
    db, err := gorm.Open("mysql", "user:password@/dbname?charset=utf8&parseTime=True&loc=Local")
    if err != nil {
        panic("failed to connect database")
    }
    defer db.Close()

    // 创建数据库表
    db.AutoMigrate(&User{})

    // 新增一条数据
    db.Create(&User{Name: "张三", Age: 30})
}

Hier haben wir eine Struktur namens „User“ erstellt und sie mithilfe der Funktion „AutoMigrate()“ der Gorm-Bibliothek in der Datenbank gespeichert. Eine Tabelle mit dem Namen „users“ ist erstellt. Anschließend haben wir mithilfe der Funktion db.Create() einen neuen Benutzer zur Datenbank hinzugefügt.

  1. Zusammenfassung

In diesem Artikel haben wir vorgestellt, wie man eine Webanwendung mit Golang erstellt. Wir verwendeten Gin als Webframework und nutzten die Template-Engine Gin Templae zur Darstellung von HTML-Seiten. Wir haben auch die Gorm ORM-Bibliothek verwendet, um eine Verbindung zur Datenbank herzustellen und verschiedene CRUD-Operationen durchzuführen.

Die leichten, effizienten und sicheren Funktionen der Go-Sprache machen sie zur besten Wahl für die Webentwicklung. Mit Golang und entsprechenden Frameworks und Bibliotheken wird die Webentwicklung einfacher und effizienter.

Das obige ist der detaillierte Inhalt vonSo erstellen Sie Webanwendungen mit Golang. 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