예제 #1
0
    def query(self):
        pageNo = int(
            request.args.get("pageNo") or request.form.get("pageNo") or 1)
        pageSize = int(
            request.args.get("pageSize") or request.form.get("pageSize") or 10)
        query = Answer.Query()
        rows = query.offset((pageNo - 1) * pageSize).limit(pageSize).all()
        answers = []
        for r in rows:
            user = User.Query().filter_by(id=r.user_id).first()
            question = Question.Query().filter_by(id=r.question_id).first()
            print(question.category_id)
            category = Category.Query().filter_by(
                id=question.category_id).first()
            answer = {
                "id": r.id,
                "username": user.name,
                "subject": question.subject,
                "category": category.name,
                "question_id": question.id,
                "question_content": question.content,
                "is_right": r.is_right,
                "user_answer": r.user_answer
            }
            answers.append(answer)

        return error.success({"list": answers})
예제 #2
0
	def post(self):
		id = request.form.get("id")
		name = request.form.get("name")
		chapter = request.form.get("chapter")
		# 判断id是否为空
		if not id or not name:
			return error.error_1001()
		# 获取category
		category = Category.Query().filter_by(id=id).first()

		# 判处category是否存在
		if category:
			# 判断name是否存在
			category_count = Category.Query().filter(and_(Category.name == name, Category.id != id)).count()
			if category_count:
				return error.error_1002("此分类已存在")
			category.name = name
			if chapter:
				category.chapter = chapter
			db.session.add(category)
			db.session.commit()
		return error.success()
예제 #3
0
	def query(self):
		name = request.args.get("name") or request.form.get("name")
		print(name)
		if not name:
			return error.error_1001()
		row = Category.Query().filter_by(name=name).first()
		category = {}
		if row:
			category = {
				"id": row.id,
				"name": row.name,
				"subject": row.subject
			}

		return error.success(category)
예제 #4
0
	def query(self):
		id = request.args.get("id") or request.form.get("id")
		# 判断id是否为空
		if not id:
			return error.error_1001()
		# 查询数据库
		row = Category.Query().filter_by(id=id).first()
		category = {}
		if row:
			category = {
				"id": row.id,
				"name": row.name,
				"subject": row.subject,
				"chapter": row.chapter,
				"created_time": datetime.timestamp(row.created_time)
			}
		return error.success(category)
예제 #5
0
	def post(self):
		id = request.form.get("id")
		# 判断id是否为空
		if not id:
			return error.error_1001()
		# 查看该分类下是否有题目
		question_count = Question.Query().filter_by(category_id=id).count()
		if question_count:
			return error.error_1008("该分类中有题目,不能被删除");

		# 查询数据库
		category = Category.Query().filter_by(id=id).first()
		# 判断category是否存在
		if category:
			# 修改并提交到数据库
			category.is_valid = False
			db.session.add(category)
			db.session.commit()
		return error.success()
예제 #6
0
	def query(self):
		pageNo = int(request.args.get("pageNo") or request.form.get("pageNo") or 1)
		pageSize = int(request.args.get("pageSize") or request.form.get("pageSize") or 10)
		subject = request.args.get("subject") or request.form.get("subject") or ""
		# 查询数据库
		query = Category.Query().filter(subject and (Category.subject == subject))
		rows = query.offset((pageNo - 1)*pageSize).limit(pageSize).all()
		count = query.count()
		pageCount = math.ceil(count / pageSize)
		categories = []
		for r in rows:
			question_count = Question.Query().filter_by(category_id = r.id).count()
			category = {
				"id": r.id,
				"name": r.name,
				"subject": r.subject,
				"chapter": r.chapter,
				"question_count": question_count,
				"created_time": datetime.timestamp(r.created_time) 
			}
			categories.append(category)
		return error.success({"list": categories, "page": {"total": count, "pageCount": pageCount}})
예제 #7
0
	def query(self):
		subject = request.args.get("subject") or request.form.get("subject")
		# 判断subject是否存在
		if not subject:
			return error.error_1001()
		# 判断subject值是否正确
		if subject not in config.subjects:
			return error.error_1006()
		# 查询数据库
		rows = Category.Query().filter_by(subject=subject).all()
		print(rows)
		categories = []
		for r in rows:
			question_count = Question.Query().filter_by(category_id=r.id).count()
			category = {
				"id": r.id,
				"name": r.name,
				"subject": r.subject,
				"chapter": r.chapter,
				"question_count": question_count,
				"created_time": datetime.timestamp(r.created_time)
			}
			categories.append(category)
		return error.success(categories)
예제 #8
0
	def post(self):
		form = request.form
		name = form.get("name")
		subject = form.get("subject")
		print(form)
		# 判断name和subject是否为空
		if not name or not subject:
			return error.error_1001()
		# 同一科目下分类名称不能重复
		name_count = Category.Query().filter_by(name=name, subject=subject).count()
		if name_count:
			return error.error_1002("此分类已存在")
		# 判断subject是否合法
		if subject not in config.subjects:
			return error.error_1006()

		# 提交到数据库
		category = Category(form)
		try:
			db.session.add(category)
			db.session.commit()
		except:
			return error.error_1003()
		return error.success()