cari
Rumahpembangunan bahagian belakangGolangAmalan pembangunan Beego - daripada penerbitan blog ke pusat membeli-belah dalam talian

Amalan pembangunan Beego - daripada penerbitan blog ke pusat membeli-belah dalam talian

Jun 23, 2023 am 10:58 AM
Pusat beli-belah dalam talianbeegosiarkan blog

Beego ialah rangka kerja pembangunan web berdasarkan bahasa Go. Ia mudah digunakan, cekap, stabil dan pembangunan pesat ia digemari dan digunakan oleh semakin ramai pembangun. Dalam artikel ini, kami akan memperkenalkan cara menggunakan rangka kerja Beego daripada menerbitkan blog kepada membina pusat membeli-belah dalam talian.

1. Penerbitan blog

  1. Pemasangan dan konfigurasi Beego

Pertama, kita perlu memasang dan mengkonfigurasi rangka kerja Beego dalam persekitaran setempat. Anda boleh memasangnya melalui arahan berikut:

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

Selepas pemasangan selesai, cipta projek baharu melalui arahan baharu lebah, seperti berikut:

bee new blog

Dalam projek yang dijana, app.conf dalam folder konfigurasi Fail ialah fail konfigurasi utama Beego, di mana kita boleh mengkonfigurasi port, pangkalan data, log, dll.

  1. Menulis kod

Dalam projek yang dijana, fail dalam folder pengawal ialah kod pengawal Beego, di mana kita boleh menulis logik perniagaan yang kita perlukan. Sebagai contoh, kita perlu mencipta model dan pengawal blog:

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

Dalam kod di atas, kami mencipta model Blog, dan melaksanakan logik untuk mendapatkan semua blog dan menambah blog baharu dalam pengawal.

  1. Lihat pemaparan

Beego menggunakan enjin templat bahasa Go untuk melaksanakan paparan paparan biasanya disimpan dalam folder paparan. Dalam contoh ini, kita boleh mencipta fail blog.tpl dan memaparkan halaman untuk memaparkan senarai blog dan borang untuk menambah blog baharu:

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

Antaranya, pernyataan {{range .blogs}} digunakan untuk menjadikan semua blog dalam gelung, pernyataan {{.Title}}, {{.Content}}, {{.Created}} digunakan untuk memberikan maklumat blog tertentu.

  1. Jalankan program

Sebelum menjalankan program, anda perlu mencipta atau mengkonfigurasi pangkalan data Anda boleh menetapkan maklumat sambungan pangkalan data dalam fail app.conf. Selepas melengkapkan konfigurasi, gunakan arahan berikut untuk menjalankan program:

bee run

Lawati localhost:8080/blog dalam pelayar untuk melihat senarai blog.

2. Pusat beli-belah dalam talian

Selain fungsi penerbitan blog, kami juga boleh menggunakan rangka kerja Beego untuk membangunkan pusat membeli-belah dalam talian. Di bawah adalah contoh mudah.

  1. Pemasangan dan konfigurasi Beego

Begitu juga, kita perlu memasang dan mengkonfigurasi rangka kerja Beego dalam persekitaran setempat terlebih dahulu Dalam contoh ini, kita menggunakan arahan berikut untuk memasang ia:

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

Dan buat projek baharu melalui arahan baharu lebah:

bee new shop

Dalam projek yang dijana, fail app.conf dalam folder konfigurasi ialah fail konfigurasi utama Beego. Kita boleh mengkonfigurasi port, pangkalan data, log, dan lain-lain di dalamnya.

  1. Menulis kod

Dalam projek yang dijana, fail dalam folder pengawal ialah kod pengawal Beego, di mana kita boleh menulis logik perniagaan yang kita perlukan.

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

Dalam kod di atas, kami mencipta model Barangan dan melaksanakan logik untuk mendapatkan semua produk dan menambah produk baharu dalam pengawal. Logik untuk memaparkan halaman utama dilaksanakan dalam MainController.

  1. Operasi Pangkalan Data

Apabila menambah dan mendapatkan produk, kita perlu menyambung ke pangkalan data, yang boleh dicapai melalui ORM Beego sendiri. Cipta fail database.go baharu dalam folder model untuk memulakan sambungan pangkalan data:

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

Apabila menambah produk baharu dan mendapatkan produk, kita boleh mencapai ini melalui kod berikut:

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. Paparan paparan

Beego menggunakan enjin templat bahasa Go untuk melaksanakan paparan paparan biasanya disimpan dalam folder paparan. Dalam contoh ini, kita boleh mencipta fail index.tpl untuk memaparkan halaman utama pusat beli-belah dalam talian:

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

Antaranya, pernyataan {{range .goods}} digunakan untuk menjadikan semua produk dalam satu gelung.

  1. Jalankan program

Selepas selesai menulis kod dan templat, gunakan arahan berikut untuk memulakan atur cara:

bee run

Lawati localhost:8080 dalam pelayar , anda boleh melihat halaman utama pusat membeli-belah dalam talian, menambah produk dan melihat semua produk. Anda boleh menjana fail boleh laku serba lengkap dengan menjalankan arahan berikut:

bee pack

Di atas ialah proses praktikal lengkap menggunakan rangka kerja Beego daripada menerbitkan blog ke pusat membeli-belah dalam talian. Saya harap ia akan membantu pembangun yang sedang mempelajari Beego.

Atas ialah kandungan terperinci Amalan pembangunan Beego - daripada penerbitan blog ke pusat membeli-belah dalam talian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Taipkan pernyataan dan jenis suis dengan antara mukaTaipkan pernyataan dan jenis suis dengan antara mukaMay 02, 2025 am 12:20 AM

Gohandlesinterfacesandtypeassertionsefectively, enhancingcodeflexabilityandrobustness.1) snossersertionsallowruntimetypechecking, asseenwiththeshaphapeinterfaceandcircletype.2) typeWitchhandLemultipypeseficeMemently, gunaurvariousshapePhipeMemently, gunaurvariousshapePhipeMemently, gunaurvariousshapePhipeMemently, bermanfaat untuk

Menggunakan ralat.is dan ralat.as untuk pemeriksaan ralat di GOMenggunakan ralat.is dan ralat.as untuk pemeriksaan ralat di GOMay 02, 2025 am 12:11 AM

GO pengendalian kesilapan bahasa menjadi lebih fleksibel dan boleh dibaca melalui kesilapan dan kesilapan.as fungsi. 1.errors.is digunakan untuk memeriksa sama ada ralat adalah sama dengan ralat yang ditentukan dan sesuai untuk pemprosesan rantaian ralat. 2.Errors.as bukan sahaja boleh menyemak jenis ralat, tetapi juga menukar ralat kepada jenis tertentu, yang mudah untuk mengekstrak maklumat ralat. Menggunakan fungsi ini dapat memudahkan logik pengendalian ralat, tetapi perhatikan penyampaian rantaian ralat yang betul dan mengelakkan kebergantungan yang berlebihan untuk mencegah kerumitan kod.

Penalaan Prestasi Di GO: Mengoptimumkan Aplikasi AndaPenalaan Prestasi Di GO: Mengoptimumkan Aplikasi AndaMay 02, 2025 am 12:06 AM

Tomakeoapplicationsrunfasterandmoreeficiently, useprofilingtools, leverageconcurrency, andmanagememoryeffectively.1) usepprofforcpuandmemoryprofiloidentificybottlenecks.2)

Masa Depan GO: Trend dan PerkembanganMasa Depan GO: Trend dan PerkembanganMay 02, 2025 am 12:01 AM

Go'sfutureisBrightWithTrendsLikeImprovedTooling, Generik, Cloud-NativeadOption, PerformanceEnhancements, dan WebassemblyIntegration, ButchallengesincludemaintainingsImplicityandImprovingErrorHandling.

Memahami Goroutine: menyelam mendalam ke go's concurrencyMemahami Goroutine: menyelam mendalam ke go's concurrencyMay 01, 2025 am 12:18 AM

Goroutinesarefunctionsormethodsthatrunconcurlyingo, enablingefficientandlightweightconcurrency.1) theareManagedBygo'sruntimeusingmultiplexing, membolehkanThousthyandstorunonfewerthreads.2) goroutinesimproveprovperformancethoaseaseaseasyfaskmismenteFf

Memahami fungsi init di GO: Tujuan dan PenggunaanMemahami fungsi init di GO: Tujuan dan PenggunaanMay 01, 2025 am 12:16 AM

Thepurposeoftheinitfunctioningoistoinitializevariables, setupconfigurations, orperformnessarysetupbeforethemainfunctionExecutes.useinitby: 1) Placingitinyourcodetorunautomaticallybeforemain, 2) penyimpanan

Memahami Antara muka: Panduan KomprehensifMemahami Antara muka: Panduan KomprehensifMay 01, 2025 am 12:13 AM

Gointerfacesaremethodsignaturesetsthattypesmustimplement,enablingpolymorphismwithoutinheritanceforcleaner,modularcode.Theyareimplicitlysatisfied,usefulforflexibleAPIsanddecoupling,butrequirecarefulusetoavoidruntimeerrorsandmaintaintypesafety.

Pulih dari panik di Go: Bila dan Cara Menggunakan Pulih ()Pulih dari panik di Go: Bila dan Cara Menggunakan Pulih ()May 01, 2025 am 12:04 AM

Gunakan fungsi pulih () dalam GO untuk pulih dari panik. Kaedah khusus adalah: 1) Gunakan pulih () untuk menangkap panik dalam fungsi penangguhan untuk mengelakkan kemalangan program; 2) rekod maklumat ralat terperinci untuk debugging; 3) memutuskan sama ada untuk meneruskan pelaksanaan program berdasarkan keadaan tertentu; 4) Gunakan dengan berhati -hati untuk mengelakkan mempengaruhi prestasi.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

SecLists

SecLists

SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual