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
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.
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.
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>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>
Antaranya, pernyataan {{range .blogs}} digunakan untuk menjadikan semua blog dalam gelung, pernyataan {{.Title}}, {{.Content}}, {{.Created}} digunakan untuk memberikan maklumat blog tertentu.
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.
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.
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.
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 }
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>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>
Antaranya, pernyataan {{range .goods}} digunakan untuk menjadikan semua produk dalam satu gelung.
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!