跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

如何使用 Golang 实现一个学生成绩管理系统_Golang 表单输入与数据库操作示例

答案:使用Golang的net/http和database/sql包,结合SQLite实现学生成绩管理系统的增删改查功能,通过HTML模板展示数据,利用预处理语句防止SQL注入,完成表单提交与页面跳转逻辑。 实现一个学生成绩管理系统,核心在于处理表单输入、连接数据库并执行增删改查操作。Golang 提供了 net/http 包处理 Web 请求,database/sql 包操作数据库,配合模板引擎展示页面。下面是一个简洁实用的示例,使用 SQLite 作为数据库,展示如何通过表单录入学生成绩,并在网页中查看和管理数据。 1. 项目结构与依赖准备 创建项目目录,结构如下: main.gotemplates/index.htmladd.html 使用 SQLite 无需额外安装数据库服务,导入驱动: go mod init studentmgrgo getgithub.com/mattn/go-sqlite3 2. 数据库初始化与模型定义 定义学生结构体,并创建数据库表: 立即学习 “ go语言免费学习笔记(深入) ”; package mainimport ("database/sql" _"github.com/mattn/go-sqlite3" "log")type Student struct {ID intName stringScore float64}func initDB() *sql.DB {db, err := sql.Open("sqlite3", "students.db")if err != nil {log.Fatal("打开数据库失败:", err)}sqlStmt := `CREATE TABLE IF NOT EXISTS students (id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT NOT NULL,score REAL);`_, err = db.Exec(sqlStmt)if err != nil {log.Fatal("建表失败:", err)}return db} 3. 表单页面与 HTML 模板 在 templates/index.html 中列出所有学生: 使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件 如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Andr​​oid友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Andr​​oid应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更 下载 学生成绩列表

学生成绩管理

添加学生
{{range .}}{{end}}
姓名成绩
{{.Name}}{{.Score}}
templates/add.html 是添加学生的表单:
姓名:
成绩:
4. 路由 处理与表单接收 编写 HTTP 路由处理函数: package mainimport ("html/template""net/http""strconv")var db *sql.DBvar tpl = template.Must(template.ParseGlob("templates/*.html"))func indexHandler(w http.ResponseWriter, r *http.Request) {rows, err := db.Query("SELECT id, name, score FROM students")if err != nil {http.Error(w, "查询失败", 500)return}defer rows.Close()var students []Studentfor rows.Next() {var s Studentrows.Scan(&s.ID, &s.Name, &s.Score)students = append(students, s)}tpl.ExecuteTemplate(w, "index.html", students)}func addHandler(w http.ResponseWriter, r *http.Request) {if r.Method == "GET" {tpl.ExecuteTemplate(w, "add.html", nil)return}r.ParseForm()name := r.FormValue("name")scoreStr := r.FormValue("score")score, err := strconv.ParseFloat(scoreStr, 64)if err != nil {http.Error(w, "成绩格式错误", 400)return}_, err = db.Exec("INSERT INTO students(name, score) VALUES(?, ?)", name, score)if err != nil {http.Error(w, "插入失败", 500)return}http.Redirect(w, r, "/", http.StatusSeeOther)}func main() {db = initDB()defer db.Close()http.HandleFunc("/", indexHandler)http.HandleFunc("/add", addHandler)http.ListenAndServe(":8080", nil)} 启动服务后访问 http://localhost:8080 即可查看和添加学生信息。 基本上就这些。这个例子展示了 Golang 如何通过标准库完成 Web 表单处理和数据库操作,适合学习基础流程。实际项目中可替换为 MySQL 或 PostgreSQL,并加入输入校验、错误提示、分页等功能。不复杂但容易忽略细节,比如 SQL 注入防范(本例使用预处理已避免)和模板安全输出。

相关文章