検索
ホームページバックエンド開発GolangBeego開発実践 - ブログ公開からオンラインモールまで
Beego開発実践 - ブログ公開からオンラインモールまでJun 23, 2023 am 10:58 AM
オンラインショッピングモールbeegoブログを投稿する

Beego は Go 言語をベースにした Web 開発フレームワークで、使いやすく、効率的で、安定性が高く、迅速な開発が可能であり、ますます多くの開発者に好まれて使用されています。この記事では、ブログの公開からオンラインモールの構築まで、Beegoフレームワークの使い方を紹介します。

1. ブログ リリース

  1. Beego のインストールと構成

まず、ローカル環境に Beego フレームワークをインストールして構成する必要があります。次のコマンドを使用してインストールできます:

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

インストールが完了したら、次のように bee new コマンドを使用して新しいプロジェクトを作成します:

bee new blog

生成されたプロジェクトで、app.conf config フォルダー内 このファイルは Beego のメイン構成ファイルで、ポート、データベース、ログなどを構成できます。

  1. コードの記述

生成されたプロジェクトでは、controllers フォルダー内のファイルが Beego のコントローラー コードであり、ここに必要なビジネス ロジックを記述することができます。たとえば、ブログ モデルとコントローラーを作成する必要があります。

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

上記のコードでは、ブログ モデルを作成し、すべてのブログを取得し、コントローラーに新しいブログを追加するロジックを実装します。

  1. ビュー レンダリング

Beego は Go 言語テンプレート エンジンを使用してビュー レンダリングを実装します。ビュー ファイルは通常、views フォルダーに保存されます。この例では、blog.tpl ファイルを作成し、ページをレンダリングして、ブログ リストと新しいブログを追加するためのフォームを表示できます。

<!DOCTYPE html>
<html>
<head>
    <title>Blog</title>
</head>
<body>
    <h1 id="All-Blogs">All Blogs</h1>
    {{range .blogs}}
        <h2 id="Title">{{.Title}}</h2>
        <p>{{.Content}}</p>
        <p>{{.Created}}</p>
    {{end}}
    <h1 id="New-Blog">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 にアクセスして、ブログ リストを表示します。

2. オンラインモール

ブログ公開機能に加えて、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()
}

上記のコードでは、グッズ モデルを作成し、すべての商品を取得し、コントローラーに新しい商品を追加するロジックを実装しました。ホームページを表示するロジックは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. View rendering

Beego は Go 言語テンプレート エンジンを使用してビュー レンダリングを実装します。ビュー ファイルは通常、views フォルダーに保存されます。この例では、オンライン モールのホームページを表示するためのindex.tpl ファイルを作成できます。

<!DOCTYPE html>
<html>
<head>
    <title>{{.Website}}</title>
</head>
<body>
    <h1 id="Welcome-to-Website">Welcome to {{.Website}}!</h1>
    <h2 id="Add-Goods">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 id="All-Goods">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

Visit localhost:8080 inブラウザで、オンライン モールのホームページを表示し、商品を追加し、すべての商品を表示できます。次のコマンドを実行すると、自己完結型の実行可能ファイルを生成できます:

bee pack

上記は、ブログをオンライン モールに公開するまで、Beego フレームワークを使用する完全な実践的なプロセスです。 Beego を学習している開発者。

以上がBeego開発実践 - ブログ公開からオンラインモールまでの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
在Beego中使用Prometheus和Grafana实现监控和报警在Beego中使用Prometheus和Grafana实现监控和报警Jun 22, 2023 am 09:06 AM

随着云计算和微服务的兴起,应用程序的复杂性也随之增加。因此,监控和诊断成为了重要的开发任务之一。在这方面,Prometheus和Grafana是两款颇为流行的开源监控和可视化工具,可以帮助开发者更好地进行应用程序的监测和分析。本文将探讨如何在Beego框架中使用Prometheus和Grafana实现监控和报警。一、介绍Beego是一个开源的快速开发Web应

在Beego中使用Google Analytics统计网站数据在Beego中使用Google Analytics统计网站数据Jun 22, 2023 am 09:19 AM

随着互联网的快速发展,Web应用程序的使用越来越普遍,如何对Web应用程序的使用情况进行监控和分析成为了开发者和网站经营者的关注点。GoogleAnalytics是一种强大的网站分析工具,可以对网站访问者的行为进行跟踪和分析。本文将介绍如何在Beego中使用GoogleAnalytics来统计网站数据。一、注册GoogleAnalytics账号首先需要

Beego中的错误处理——防止应用崩溃Beego中的错误处理——防止应用崩溃Jun 22, 2023 am 11:50 AM

在Beego框架中,错误处理是非常重要的一个部分,因为如果应用程序没有正确、完善的错误处理机制,它可能会导致应用程序崩溃或者无法正常运行,这对我们的项目和用户来说都是一个非常严重的问题。Beego框架提供了一系列的机制来帮助我们避免这些问题,并且使得我们的代码更加健壮、可维护。在本文中,我们将介绍Beego框架中的错误处理机制,并且讨论它们如何帮助我们避免应

如何使用Node.js开发一个在线商城的购物车功能如何使用Node.js开发一个在线商城的购物车功能Nov 08, 2023 am 09:18 AM

如何使用Node.js开发一个在线商城的购物车功能在当今互联网时代,电子商务已经成为了人们购物的主要方式之一。而一个完善的购物车功能对于在线商城来说是非常重要的,它能够为用户提供方便的购物体验并提高用户转化率。本文将介绍如何使用Node.js开发一个在线商城的购物车功能,并提供具体的代码示例。环境准备首先,确保你的电脑已经安装了Node.js和npm。你可以

Beego中使用JWT实现身份验证Beego中使用JWT实现身份验证Jun 22, 2023 pm 12:44 PM

随着互联网和移动互联网的飞速发展,越来越多的应用需要进行身份验证和权限控制,而JWT(JSONWebToken)作为一种轻量级的身份验证和授权机制,在WEB应用中被广泛应用。Beego是一款基于Go语言的MVC框架,具有高效、简洁、可扩展等优点,本文将介绍如何在Beego中使用JWT实现身份验证。一、JWT简介JSONWebToken(JWT)是一种

在Beego中使用Hadoop和HBase进行大数据存储和查询在Beego中使用Hadoop和HBase进行大数据存储和查询Jun 22, 2023 am 10:21 AM

随着大数据时代的到来,数据处理和存储变得越来越重要,如何高效地管理和分析大量的数据也成为企业面临的挑战。Hadoop和HBase作为Apache基金会的两个项目,为大数据存储和分析提供了一种解决方案。本文将介绍如何在Beego中使用Hadoop和HBase进行大数据存储和查询。一、Hadoop和HBase简介Hadoop是一个开源的分布式存储和计算系统,它可

展示Web应用数据的新方式——在Beego中使用WebSocket和Socket.io展示Web应用数据的新方式——在Beego中使用WebSocket和Socket.ioJun 22, 2023 am 10:09 AM

随着Web应用程序的发展,我们需要不断探索新的方法来展示数据。其中一个新的方式是使用WebSocket和Socket.io,它们可以实时地更新数据,而不需要重新加载整个页面。本文将介绍如何在Beego中使用WebSocket和Socket.io来展示Web应用程序的数据。Beego是一个基于Go语言的Web框架,它可以帮助我们更容易地构建Web应用程序。首先

如何利用PHP开发在线商城功能如何利用PHP开发在线商城功能Aug 26, 2023 pm 09:49 PM

如何利用PHP开发在线商城功能随着互联网的发展,越来越多的人选择在线购物,这使得电子商务领域蓬勃发展。对于想要开发自己的在线商城的开发者来说,PHP是一个非常理想的选择。PHP是一种开放源代码的服务器脚本语言,广泛应用于Web开发领域。在本文中,我们将介绍如何利用PHP开发在线商城功能,并附上代码示例。数据库设计在开始开发在线商城之前,首先需要进行数据库设计

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール