


Tutorial pembinaan laman web blog teknikal - dibangunkan menggunakan Beego
1. Kata Pengantar
Hari ini, blog teknologi telah menjadi salah satu platform penting untuk pengaturcara berkomunikasi dan berinteraksi, mempamerkan teknologi dan meluaskan idea mereka. Bagi pengaturcara yang mempunyai asas pengaturcaraan tertentu, secara beransur-ansur menjadi trend untuk membangunkan blog mereka sendiri untuk mencapai penyesuaian peribadi dan pengembangan percuma.
Artikel ini akan membimbing pembaca untuk menggunakan rangka kerja Beego untuk membina blog teknologi mereka sendiri, bertujuan untuk menyediakan penyelesaian yang mudah, cekap dan mudah untuk dikembangkan.
2. Pengenalan kepada rangka kerja Beego
Beego ialah rangka kerja web yang dibangunkan berdasarkan bahasa Go. Reka bentuknya diinspirasikan oleh rangka kerja Django Python dan rangka kerja Tornado Python. Beego ialah rangka kerja web yang ringan, mudah dipelajari, cekap dan fleksibel yang turut menyokong pembangunan API RESTful.
3. Persediaan persekitaran
1. Pasang persekitaran Go
Mula-mula, anda perlu memasang persekitaran Go Untuk langkah khusus, sila rujuk dokumentasi rasmi untuk pemasangan.
2. Pasang alat Beego dan Bee
Beego dan Bee ialah dua alatan yang berbeza, dan Bee ialah alat baris arahan berdasarkan rangka kerja Beego, yang boleh digunakan untuk mencipta projek baharu, mencipta. Pengawal, Model, Pandangan, dsb., sangat meningkatkan kecekapan pembangunan.
Gunakan arahan untuk memasang: go get github.com/astaxie/beego
go get github.com/beego/bee
3 Cipta projek dan konfigurasi
Buat a projek bernama Myblog project: bee new myblog
Kemudian masukkan direktori myblog: cd myblog
Sekarang akan ada folder bernama conf dalam direktori myblog App.conf di dalam adalah fail konfigurasi Konfigurasi yang berkaitan, seperti alamat sambungan pangkalan data, port, dsb.
4. Laksanakan fungsi blog
1 Reka bentuk model
Pertama, anda perlu menulis fail blog.go dalam direktori model untuk mencipta jadual pangkalan data, seperti yang ditunjukkan di bawah:
model pakej
import (
"github.com/astaxie/beego/orm" "time"
)
//struktur data
//artikel
taip struct Artikel {
Id int64 `orm:"auto"` Title string `orm:"size(100)"` Content string `orm:"type(text)"` ImgUrl string `orm:"size(200)"` Category *Category `orm:"-"` Created time.Time `orm:"auto_now_add;type(datetime)"` Updated time.Time `orm:"auto_now_add;type(datetime)"`
}
//Category
type Category struct {
Id int64 Title string Articles []*Article `orm:"reverse(many)"`
}
2. Tulisan pengawal
Tulis fail article.go dalam direktori pengawal untuk pelaksanaan Kaedah pengawal yang berkaitan dengan artikel adalah seperti berikut:
pengawal pakej
import (
"myblog/models" "fmt" "strconv" "time"
)
taip ArticleController struct {
BaseController
}
func (Senarai *ArticleController) ini() {
categoryIdStr := this.GetString("category_id") categoryId, _ := strconv.ParseInt(categoryIdStr, 10, 64) categories := models.GetAllCategory() this.Data["Categories"] = categories var articles []*models.Article if categoryId == 0 { articles = models.GetAllArticle() } else { articles = models.GetArticleByCategory(categoryId) } this.Data["Articles"] = articles this.Data["CategoryId"] = categoryId this.TplName = "article/list.html"
}
func (ini *ArticleController) Add() {
if this.Ctx.Request.Method == "GET" { categories := models.GetAllCategory() this.Data["Categories"] = categories this.TplName = "article/add.html" return } title := this.GetString("title") content := this.GetString("content") categoryId, _ := this.GetInt64("category_id") imgUrl := this.GetString("img_url") article := models.Article{Title: title, Content:content, ImgUrl:imgUrl, Category:&models.Category{Id:categoryId}} models.AddArticle(&article) fmt.Println("添加成功") this.Redirect("/article/list", 302)
}
func (ini *ArticleController) Update() {
id, _ := this.GetInt64(":id") if this.Ctx.Request.Method == "GET" { article := models.GetArticleById(id) this.Data["Article"] = article categories := models.GetAllCategory() this.Data["Categories"] = categories this.TplName = "article/update.html" return } title := this.GetString("title") content := this.GetString("content") categoryId, _ := this.GetInt64("category_id") imgUrl := this.GetString("img_url") article := models.Article{Id: id, Title: title, Content:content, ImgUrl:imgUrl, Category:&models.Category{Id:categoryId}} models.UpdateArticle(&article) this.Redirect("/article/list", 302)
}
func (ini *ArticleController) Delete() {
id, _ := this.GetInt64(":id") models.DeleteArticleById(id) this.Redirect("/article/list", 302)
}
func (ini *ArticleController) Detail() {
id, _ := this.GetInt64(":id") article := models.GetArticleById(id) this.Data["Article"] = article this.TplName = "article/detail.html"
}
3. Lihat fail
Tulis direktori artikel dalam direktori pandangan untuk menyimpan maklumat berkaitan artikel Lihat fail, seperti yang ditunjukkan di bawah:
//article/list.html
{{template "header.html" .}}
<h3>文章管理</h3> <div class="list-nav"> <a href="{{.ctx.Request.URL.Path}}">全部</a> {{range .Categories}} <a href="{{.ctx.Request.URL.Path}}?category_id={{.Id}}">{{.Title}}</a> {{end}} </div> <table> <thead> <tr> <th>Id</th> <th>标题</th> <th>分类</th> <th>发布时间</th> <th>更新时间</th> <th>操作</th> </tr> </thead> <tbody> {{range .Articles}} <tr> <td>{{.Id}}</td> <td>{{.Title}}</td> <td>{{.Category.Title}}</td> <td>{{.Created.Format "2006-01-02 15:04:05"}}</td> <td>{{.Updated.Format "2006-01-02 15:04:05"}}</td> <td> <a href="/article/detail?id={{.Id}}">查看</a> <a href="/article/update?id={{.Id}}">修改</a> <a href="/article/delete?id={{.Id}}" onclick="return confirm('确定删除文章【{{.Title}}】吗?')">删除</a> </td> </tr> {{end}} </tbody> </table>
< /div>
{{template "footer.html" .}}
//article/add.html
{{template "header.html" .}}
<h3>添加文章</h3> <form action="/article/add" method="post"> <p>标题: <input type="text" name="title"></p> <p> 分类: <select name="category_id"> {{range .Categories}} <option value="{{.Id}}">{{.Title}}</option> {{end}} </select> </p> <p>图片Url: <input type="text" name="img_url"></p> <p>内容: <textarea name="content"></textarea></p> <p><input type="submit" value="添加"></p> </form>
{{template "footer.html" .}}
//article/update.html
{{template "header.html " .}}
<h3>修改文章</h3> <form action="/article/update?id={{.Article.Id}}" method="post"> <p>标题: <input type="text" name="title" value="{{.Article.Title}}"></p> <p> 分类: <select name="category_id"> {{range $index, $option := .Categories}} <option value="{{$option.Id}}" {{if eq $option.Id $.Article.Category.Id}}selected{{end}}>{{$option.Title}}</option> {{end}} </select> </p> <p>图片Url: <input type="text" name="img_url" value="{{.Article.ImgUrl}}"></p> <p>内容: <textarea name="content" rows="30">{{.Article.Content}}</textarea></p> <p><input type="submit" value="修改"></p> </form>
{{template "footer.html" .}}
//article/detail.html
{{template "header.html" .}}
<h3>{{.Article.Title}}</h3> <p>分类:{{.Article.Category.Title}}</p> <p>发布时间:{{.Article.Created.Format "2006-01-02 15:04:05"}}</p> <p>更新时间:{{.Article.Updated.Format "2006-01-02 15:04:05"}}</p> <p>内容:</p> <div class="detail-content">{{.Article.Content}}</div>
{{template "footer.html" .}}
5. Jalankan projek
Gunakan arahan bee run dalam terminal untuk memulakan projek, dan kemudian lawati http://localhost:8080/article/list untuk mengakses blog.
6. Ringkasan
Artikel ini memperkenalkan secara ringkas penggunaan rangka kerja Beego, dan melaksanakan aplikasi blog mudah atas dasar ini. Dengan mengkaji artikel ini, pembaca boleh mempunyai pemahaman awal tentang penggunaan asas rangka kerja Beego Untuk butiran lanjut, sila rujuk dokumentasi rasmi.
Atas ialah kandungan terperinci Tutorial pembinaan laman web blog teknikal - dibangunkan menggunakan Beego. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Dengan peningkatan pengkomputeran awan dan perkhidmatan mikro, kerumitan aplikasi telah meningkat. Oleh itu, pemantauan dan diagnostik menjadi salah satu tugas pembangunan yang penting. Dalam hal ini, Prometheus dan Grafana ialah dua alat pemantauan dan visualisasi sumber terbuka yang popular yang boleh membantu pembangun memantau dan menganalisis aplikasi dengan lebih baik. Artikel ini akan meneroka cara menggunakan Prometheus dan Grafana untuk melaksanakan pemantauan dan membimbangkan dalam rangka kerja Beego. 1. Pengenalan Beego ialah aplikasi web pembangunan pesat sumber terbuka.

Dengan perkembangan pesat Internet, penggunaan aplikasi Web menjadi semakin biasa Bagaimana untuk memantau dan menganalisis penggunaan aplikasi Web telah menjadi tumpuan pembangun dan pengendali laman web. Google Analytics ialah alat analitis tapak web yang berkuasa yang boleh menjejak dan menganalisis tingkah laku pelawat tapak web. Artikel ini akan memperkenalkan cara menggunakan Google Analitis dalam Beego untuk mengumpul data tapak web. 1. Untuk mendaftar akaun Google Analitis, anda perlu terlebih dahulu

Dalam era perkembangan teknologi yang pesat hari ini, bahasa pengaturcaraan bermunculan seperti cendawan selepas hujan. Salah satu bahasa yang telah menarik perhatian ramai ialah bahasa Go, yang digemari oleh ramai pembangun kerana kesederhanaan, kecekapan, keselamatan serentak dan ciri-ciri lain. Bahasa Go terkenal dengan ekosistemnya yang kukuh dengan banyak projek sumber terbuka yang sangat baik. Artikel ini akan memperkenalkan lima projek sumber terbuka bahasa Go yang dipilih dan membawa pembaca untuk meneroka dunia projek sumber terbuka bahasa Go. KubernetesKubernetes ialah enjin orkestrasi kontena sumber terbuka untuk automatik

Dalam rangka kerja Beego, pengendalian ralat adalah bahagian yang sangat penting, kerana jika aplikasi tidak mempunyai mekanisme pengendalian ralat yang betul dan lengkap, ia boleh menyebabkan aplikasi itu ranap atau tidak berjalan dengan betul, iaitu untuk projek dan pengguna kami masalah yang sangat serius. Rangka kerja Beego menyediakan satu siri mekanisme untuk membantu kami mengelakkan masalah ini dan menjadikan kod kami lebih teguh dan boleh diselenggara. Dalam artikel ini, kami akan memperkenalkan mekanisme pengendalian ralat dalam rangka kerja Beego dan membincangkan cara ia boleh membantu kami mengelakkan

Dengan perkembangan pesat Internet, sistem teragih telah menjadi salah satu infrastruktur dalam banyak perusahaan dan organisasi. Untuk sistem teragih berfungsi dengan baik, ia perlu diselaraskan dan diuruskan. Dalam hal ini, ZooKeeper dan Curator ialah dua alat yang patut digunakan. ZooKeeper ialah perkhidmatan penyelarasan teragih yang sangat popular yang boleh membantu kami menyelaraskan status dan data antara nod dalam kelompok. Kurator ialah enkapsulasi ZooKeeper

"Go Language Development Essentials: 5 Syor Rangka Kerja Popular" Sebagai bahasa pengaturcaraan yang pantas dan cekap, bahasa Go digemari oleh semakin ramai pembangun. Untuk meningkatkan kecekapan pembangunan dan mengoptimumkan struktur kod, ramai pembangun memilih untuk menggunakan rangka kerja untuk membina aplikasi dengan cepat. Dalam dunia bahasa Go, terdapat banyak rangka kerja yang sangat baik untuk dipilih. Artikel ini akan memperkenalkan 5 rangka kerja bahasa Go yang popular dan menyediakan contoh kod khusus untuk membantu pembaca memahami dan menggunakan rangka kerja ini dengan lebih baik. 1.GinGin ialah rangka kerja web yang ringan dengan pantas

Dengan perkembangan pesat Internet, semakin banyak perusahaan telah mula memindahkan aplikasi mereka ke platform awan. Docker dan Kubernetes telah menjadi dua alat yang sangat popular dan berkuasa untuk penggunaan dan pengurusan aplikasi pada platform awan. Beego ialah rangka kerja Web yang dibangunkan menggunakan Golang Ia menyediakan fungsi yang kaya seperti penghalaan HTTP, lapisan MVC, pengelogan, pengurusan konfigurasi dan pengurusan Sesi. Dalam artikel ini kami akan membincangkan cara menggunakan Docker dan Kub

Dengan perkembangan pesat Internet dan Internet mudah alih, semakin banyak aplikasi memerlukan pengesahan dan kawalan kebenaran, dan JWT (JSON Web Token), sebagai mekanisme pengesahan dan kebenaran yang ringan, digunakan secara meluas dalam aplikasi WEB. Beego ialah rangka kerja MVC berdasarkan bahasa Go, yang mempunyai kelebihan kecekapan, kesederhanaan dan skalabiliti Artikel ini akan memperkenalkan cara menggunakan JWT untuk melaksanakan pengesahan dalam Beego. 1. Pengenalan kepada JWT JSONWebToken (JWT) ialah a
