HTML Template Rendering এবং Static Files Serve করা

Web Development with Go (ওয়েব ডেভেলপমেন্ট) - গো প্রোগ্রামিং (Go Programming) - Computer Programming

287

Go-তে HTML Template Rendering এবং Static Files Serve করা

Go প্রোগ্রামিং ভাষায় HTML template rendering এবং static files serve করা সহজ এবং কার্যকরী। html/template প্যাকেজটি ব্যবহার করে আপনি HTML টেমপ্লেট রেন্ডার করতে পারেন এবং static files (যেমন CSS, JS, ইমেজ) সরবরাহ করতে http প্যাকেজের সাহায্যে সঠিকভাবে হ্যান্ডেল করতে পারেন।

এই টিউটোরিয়ালে, আমরা দেখব কিভাবে HTML Templates রেন্ডার করা হয় এবং কিভাবে Static Files (যেমন CSS, JavaScript) ব্যবহার করা যায় একটি Go অ্যাপ্লিকেশনে।


১. HTML Template Rendering

Go তে HTML template rendering করতে html/template প্যাকেজ ব্যবহার করা হয়। এটি একটি শক্তিশালী টেমপ্লেট ইঞ্জিন যা ডেটা ডাইনামিকভাবে HTML ডকুমেন্টে প্রিন্ট করতে সাহায্য করে।

১.১ HTML Template তৈরি এবং রেন্ডার করা

প্রথমে একটি HTML Template তৈরি করি এবং তারপর তা Go এর মাধ্যমে রেন্ডার করা হবে।

১.১.১ HTML Template ফাইল তৈরি

ধরা যাক, আপনার একটি index.html ফাইল আছে যা ডেটা রেন্ডার করবে:

<!-- index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>{{.Title}}</title>
</head>
<body>
    <h1>{{.Message}}</h1>
</body>
</html>

এখানে:

  • {{.Title}} এবং {{.Message}} হল template variables, যা ডাইনামিকভাবে ডেটার মাধ্যমে পরিবর্তিত হবে।
১.১.২ Go কোডে HTML Template রেন্ডার করা
package main

import (
    "fmt"
    "html/template"
    "net/http"
)

type PageVariables struct {
    Title   string
    Message string
}

func handler(w http.ResponseWriter, r *http.Request) {
    pageVariables := PageVariables{
        Title:   "Go HTML Template",
        Message: "Welcome to Go HTML Template Rendering!",
    }

    // HTML template রেন্ডার করা
    tmpl, err := template.ParseFiles("index.html")
    if err != nil {
        fmt.Println(err)
        return
    }

    // template.Execute() দ্বারা ডেটা রেন্ডার করা
    tmpl.Execute(w, pageVariables)
}

func main() {
    http.HandleFunc("/", handler)
    fmt.Println("Starting server at :8080...")
    http.ListenAndServe(":8080", nil)
}

এখানে:

  • template.ParseFiles ফাংশনটি HTML টেমপ্লেট ফাইলটি লোড করে।
  • tmpl.Execute ফাংশনটি টেমপ্লেটে ডেটা রেন্ডার করে এবং ক্লায়েন্টকে পাঠায়।

টেস্ট করতে:

  1. আপনার Go অ্যাপ্লিকেশন চালান: go run main.go
  2. ব্রাউজারে গিয়ে http://localhost:8080 এ যান।
  3. আপনি টেমপ্লেটের ডাইনামিক ডেটা দেখতে পাবেন।

২. Static Files Serve করা

Go তে static files (যেমন CSS, JavaScript, ইমেজ) serve করার জন্য http.ServeFile অথবা http.FileServer ব্যবহার করা হয়।

২.১ Static File Serve করা

ধরা যাক, আপনার অ্যাপ্লিকেশনে কিছু CSS এবং JS ফাইল রয়েছে, যা আপনি স্ট্যাটিকভাবে serve করতে চান।

২.১.১ Directory Structure
/myapp
    /static
        /css
            styles.css
        /js
            script.js
    main.go
    index.html
২.১.২ CSS এবং JS ফাইল serve করা
package main

import (
    "fmt"
    "html/template"
    "net/http"
)

type PageVariables struct {
    Title   string
    Message string
}

func handler(w http.ResponseWriter, r *http.Request) {
    pageVariables := PageVariables{
        Title:   "Go HTML Template",
        Message: "Welcome to Go HTML Template Rendering!",
    }

    tmpl, err := template.ParseFiles("index.html")
    if err != nil {
        fmt.Println(err)
        return
    }

    tmpl.Execute(w, pageVariables)
}

func main() {
    // Static files serve করা
    http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("./static"))))

    // Template render handler
    http.HandleFunc("/", handler)

    fmt.Println("Starting server at :8080...")
    http.ListenAndServe(":8080", nil)
}

এখানে:

  • http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("./static")))) লাইনে আমরা স্ট্যাটিক ফাইল সার্ভ করার জন্য http.FileServer ব্যবহার করেছি। এটি static ডিরেক্টরি থেকে ফাইল serve করবে এবং ক্লায়েন্টকে পাঠাবে।
  • http.StripPrefix দিয়ে আমরা /static/ পাথকে ফাইলের রুট থেকে বাদ দিয়ে ডিরেক্টরির ভিতরের ফাইল serve করেছি।

২.২ Static Files Access

এখন, আপনি যদি styles.css অথবা script.js ফাইলকে serve করতে চান, আপনি ব্রাউজারে গিয়ে:

http://localhost:8080/static/css/styles.css
http://localhost:8080/static/js/script.js

এগুলো অ্যাক্সেস করতে পারবেন।


৩. Combining Template Rendering and Static Files

আপনি HTML টেমপ্লেট রেন্ডার এবং স্ট্যাটিক ফাইল serve একসাথে ব্যবহার করতে পারেন, যাতে টেমপ্লেটের মধ্যে স্ট্যাটিক ফাইল যেমন CSS বা JavaScript লিংক করা যায়।

৩.১ HTML Template with Static Files
<!-- index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>{{.Title}}</title>
    <link rel="stylesheet" type="text/css" href="/static/css/styles.css">
</head>
<body>
    <h1>{{.Message}}</h1>
    <script src="/static/js/script.js"></script>
</body>
</html>

এখানে, আমরা HTML টেমপ্লেটে স্ট্যাটিক ফাইলের লিঙ্ক যোগ করেছি।


সারসংক্ষেপ

  • HTML Template Rendering: Go-তে html/template প্যাকেজ ব্যবহার করে আপনি HTML টেমপ্লেট রেন্ডার করতে পারেন এবং ডাইনামিকভাবে ডেটা প্রদান করতে পারেন।
  • Static Files Serve: Go তে http.FileServer এবং http.ServeFile ব্যবহার করে আপনি স্ট্যাটিক ফাইল (যেমন CSS, JS) সার্ভ করতে পারেন।
  • Integration: HTML টেমপ্লেট এবং স্ট্যাটিক ফাইল একসাথে কাজ করতে পারে, যেখানে আপনি টেমপ্লেটে স্ট্যাটিক ফাইলের লিঙ্ক যোগ করতে পারেন।

Go-তে HTML Template Rendering এবং Static Files Serve খুবই সহজ এবং কার্যকরী, যা ওয়েব অ্যাপ্লিকেশন তৈরি করার জন্য শক্তিশালী ফিচার।

Content added By
Promotion

Are you sure to start over?

Loading...