我是新来的。我在golang的gin框架中创建测验应用程序。从数据库中获取问题后,当我尝试使用c.HTML()在HTML页面中呈现问题时,c.HTML()不起作用。我不知道为什么。在其他控制器中我做了同样的事情,它工作得很好,但在GetQuizController中它不工作。请帮帮我
https://github.com/Shashwat5522/quizzapp
路由器编码
r := gin.Default()
r.LoadHTMLGlob("views/*")
Teacher := r.Group("/teacher", SessionHandler)
{
Teacher.GET("/teacherpanel", controllers.TeacherPanelController)
Teacher.GET("/createquizz", controllers.CreateQuizController)
Teacher.POST("/createquizz", controllers.PostQuizController)
Teacher.GET("/addstudent", controllers.AddStudentController)
Teacher.POST("/addstudent", controllers.PostStudentController)
Teacher.GET("/listofquiz", controllers.GetListOfQuizController)
Teacher.GET("/quiz",controllers.GetQuizController)
}
控制器代码
func GetQuizController(c *gin.Context) {
fmt.Println("get quiz controller called")
quizname := c.Query("quizname")
var questions []models.Questions
dbconnection.DB.Debug().Model(&models.Quiz{}).Select("quizzes.quiz_name,questions.question,questions.option_a,questions.option_b,questions.option_c,questions.option_d,questions.answer,questions.difficulty").Joins("inner join questions on questions.quiz_id=quizzes.id").Where("quizzes.quiz_name=?", quizname).Scan(&questions)
fmt.Println(questions)
c.HTML(200,"showquiz.html",gin.H{
"data":questions,
})
}
在此GetQuizController中,c.HTML不起作用。请帮帮我
1条答案
按热度按时间9rygscc11#
看来你不知道如何描述这个问题,所以我将描述我所做的和我发现的问题。如果您认为您遇到了其他问题,请编辑您的问题,以描述您所做的事情以及错误所在,如下图所示。
1.使用Docker启动MySQL服务器:
1.创建一个名为
quizzapplication
的数据库:1.克隆仓库(提交为
bfda880
):1.更改工作目录
1.添加缺少的模块并删除未使用的模块
go.mod
文件需要gorm.io/driver/postgres
,但源代码导入了gorm.io/driver/mysql
。运行go mod tidy
来更正它。1.迁移数据库
1.启动Web服务器:
1.打开一个新的终端并发送一个请求:
输出为:
<h1>Show quizz</h1>
在</html>
标记之后呈现。这不是有效的HTML。这是因为您没有在SessionHandler
中调用c.Abort()
。它可以像这样修复:我相信源代码中还有其他问题。但我不会审查整个项目,并找出所有的。这只是一个演示,展示如何清楚地描述问题。
请记住,请保持问题的焦点。发布一个充满问题的项目并要求其他人找出它们是不好的。