Rumah pembangunan bahagian belakang Golang Tutorial pembinaan laman web blog teknikal - dibangunkan menggunakan Beego

Tutorial pembinaan laman web blog teknikal - dibangunkan menggunakan Beego

Jun 22, 2023 pm 01:16 PM
beego Tutorial membina laman web Blog Teknologi

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"
Salin selepas log masuk

)

//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)"`
Salin selepas log masuk

}

//Category
type Category struct {

Id       int64
Title    string
Articles []*Article `orm:"reverse(many)"`
Salin selepas log masuk

}

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"
Salin selepas log masuk

)

taip ArticleController struct {

BaseController
Salin selepas log masuk

}

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"
Salin selepas log masuk

}

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)
Salin selepas log masuk

}

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)
Salin selepas log masuk

}

func (ini *ArticleController) Delete() {

id, _ := this.GetInt64(":id")
models.DeleteArticleById(id)

this.Redirect("/article/list", 302)
Salin selepas log masuk

}

func (ini *ArticleController) Detail() {

id, _ := this.GetInt64(":id")

article := models.GetArticleById(id)
this.Data["Article"] = article

this.TplName = "article/detail.html"
Salin selepas log masuk

}

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>
Salin selepas log masuk

< /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>
Salin selepas log masuk


{{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>
Salin selepas log masuk


{{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>
Salin selepas log masuk


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

Kenyataan Laman Web ini
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

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

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Menggunakan Prometheus dan Grafana untuk melaksanakan pemantauan dan membimbangkan di Beego Menggunakan Prometheus dan Grafana untuk melaksanakan pemantauan dan membimbangkan di Beego Jun 22, 2023 am 09:06 AM

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.

Gunakan Analitis Google untuk mengira data tapak web dalam Beego Gunakan Analitis Google untuk mengira data tapak web dalam Beego Jun 22, 2023 am 09:19 AM

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

Lima projek sumber terbuka bahasa Go yang dipilih untuk membawa anda meneroka dunia teknologi Lima projek sumber terbuka bahasa Go yang dipilih untuk membawa anda meneroka dunia teknologi Jan 30, 2024 am 09:08 AM

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

Ralat pengendalian dalam Beego - menghalang ranap aplikasi Ralat pengendalian dalam Beego - menghalang ranap aplikasi Jun 22, 2023 am 11:50 AM

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

Menggunakan ZooKeeper dan Kurator untuk penyelarasan dan pengurusan yang diedarkan di Beego Menggunakan ZooKeeper dan Kurator untuk penyelarasan dan pengurusan yang diedarkan di Beego Jun 22, 2023 pm 09:27 PM

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

Keperluan pembangunan bahasa Go: 5 cadangan rangka kerja yang popular Keperluan pembangunan bahasa Go: 5 cadangan rangka kerja yang popular Mar 24, 2024 pm 01:15 PM

"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

Penggunaan dan pengurusan pengeluaran menggunakan Docker dan Kubernetes dalam Beego Penggunaan dan pengurusan pengeluaran menggunakan Docker dan Kubernetes dalam Beego Jun 23, 2023 am 08:58 AM

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

Menggunakan JWT untuk melaksanakan pengesahan dalam Beego Menggunakan JWT untuk melaksanakan pengesahan dalam Beego Jun 22, 2023 pm 12:44 PM

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

See all articles