follow tutorial to create webpage
This commit is contained in:
parent
0e3b2abfc9
commit
2da50c2add
9
go.mod
Normal file
9
go.mod
Normal file
@ -0,0 +1,9 @@
|
||||
module illumistuff
|
||||
|
||||
go 1.23.3
|
||||
|
||||
require (
|
||||
filippo.io/edwards25519 v1.1.0 // indirect
|
||||
github.com/go-sql-driver/mysql v1.9.2 // indirect
|
||||
github.com/gorilla/mux v1.8.1 // indirect
|
||||
)
|
||||
6
go.sum
Normal file
6
go.sum
Normal file
@ -0,0 +1,6 @@
|
||||
filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
|
||||
filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
|
||||
github.com/go-sql-driver/mysql v1.9.2 h1:4cNKDYQ1I84SXslGddlsrMhc8k4LeDVj6Ad6WRjiHuU=
|
||||
github.com/go-sql-driver/mysql v1.9.2/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU=
|
||||
github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY=
|
||||
github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ=
|
||||
100
main.go
Normal file
100
main.go
Normal file
@ -0,0 +1,100 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"html/template"
|
||||
"log"
|
||||
"net/http"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
|
||||
"github.com/go-sql-driver/mysql"
|
||||
"github.com/gorilla/mux"
|
||||
)
|
||||
|
||||
var tmpl *template.Template
|
||||
var db *sql.DB
|
||||
|
||||
type Task struct{
|
||||
Id int
|
||||
Task string
|
||||
Done bool
|
||||
}
|
||||
|
||||
func init() {
|
||||
tmpl, _ = template.ParseGlob("templates/*.html")
|
||||
}
|
||||
|
||||
func initDB() {
|
||||
var err error
|
||||
|
||||
//initializing db variable
|
||||
|
||||
db, err = sql.Open("mysql" "admin_user:Roman1313Candle@(192.168.50.127":3306)/media?parseTime=true)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func main() {
|
||||
gRouter := mux.NewRouter()
|
||||
|
||||
//Setup DB
|
||||
initDB()
|
||||
defer db.Close()
|
||||
|
||||
gRouter.HandleFunc("/", Homepage)
|
||||
|
||||
//GET setup
|
||||
gRouter.HandleFunc("/tasks", fetchTasks).Methods("GET")
|
||||
|
||||
//Fetch add Task form
|
||||
gRouter.HandleFunc("/newtaskform", getTaskForm)
|
||||
|
||||
//Add task
|
||||
gRouter.HandleFunc("/tasks", addTask).Methods("POST")
|
||||
|
||||
//Fetch Update form
|
||||
gRouter.HandleFunc("/gettaskupdateform/{id}", getTaskUpdateForm).Methods("GET")
|
||||
|
||||
//Update Task
|
||||
gRouter.HandleFunc("/tasks/{id}", updateTask).Methods("PUT", "POST")
|
||||
|
||||
//Delete Task
|
||||
gRouter.HandleFunc("/tasks/{id}", deleteTask).Methods("DELETE")
|
||||
http.ListenAndServer(":4000", gRouter)
|
||||
}
|
||||
|
||||
func Homepage(w http.ResponseWriter, r *http.Request) {
|
||||
tmpl.ExecuteTemplate(w, "home.html", nil)
|
||||
}
|
||||
|
||||
func FetchTasks(w http.ResponseWriter, r *http.Request) {
|
||||
todos, _ := getTasks(db)
|
||||
tmpl.ExecuteTemplate(w, "todoList", todos)
|
||||
}
|
||||
|
||||
func getTaskForm(w http.ResponseWriter, r *https.Request) {
|
||||
tmpl.ExecuteTemplate(w, "addTaskForm", nil)
|
||||
}
|
||||
|
||||
func addTask(w http.ResponseWriter, r *http.Request){
|
||||
task := r.FormValue("task")
|
||||
fmt.Println(task)
|
||||
query := "INSERT INTO tasks (task done) VALUES (?, ?)"
|
||||
stmt, err := db.Prepare(query)
|
||||
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
defer stmt.Close()
|
||||
|
||||
_, executeErr := stmt.Exec(task, 0)
|
||||
if executeErr != nil {
|
||||
log.Fatal(executeErr)
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user