seed.py 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. # -*- coding: utf-8 -*-
  2. """初始化 MySQL 题库数据(与 FastAPI 后端共用)"""
  3. import sys
  4. import os
  5. _root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
  6. sys.path.insert(0, _root)
  7. from backend.database import SessionLocal
  8. from backend.models import Question
  9. DATA = [
  10. ("下列物质中,不属于电解质的是?", "NaCl", "CH₃COOH", "Cu (金属铜)", "NaOH", "C", "电解质"),
  11. ("下列关于化学反应速率的说法正确的是?", "反应速率是指反应物浓度的减少", "反应速率是指生成物浓度的增加",
  12. "反应速率可以用单位时间内反应物浓度的减少来表示", "反应速率与反应物的性质无关", "C", "化学反应速率"),
  13. ("下列属于氧化还原反应的是?", "CaCO₃ 高温分解", "NaOH + HCl = NaCl + H₂O",
  14. "2H₂ + O₂ 点燃 2H₂O", "AgNO₃ + NaCl = AgCl↓ + NaNO₃", "C", "氧化还原反应"),
  15. ("物质的量的单位是?", "g", "mol", "L", "m³", "B", "物质的量"),
  16. ("元素周期表中,同周期元素从左到右,原子半径变化规律是?", "逐渐增大", "逐渐减小",
  17. "先增大后减小", "不变", "B", "元素周期律"),
  18. ("下列物质能在氧气中燃烧并产生大量白烟的是?", "碳", "硫", "磷", "铁丝", "C", "氧气性质"),
  19. ("原子核由什么组成?", "质子和电子", "质子和中子", "中子和电子", "质子、中子和电子", "B", "原子结构"),
  20. ("酸溶液能使紫色石蕊试液变?", "红色", "蓝色", "无色", "紫色", "A", "酸碱指示剂"),
  21. ("催化剂在化学反应中的作用是?", "增加反应物", "减少生成物", "改变化学反应速率", "改变反应条件", "C", "催化剂"),
  22. ("离子反应发生的条件是?", "有沉淀、气体或水生成", "有催化剂", "加热", "加压", "A", "离子反应"),
  23. ]
  24. def main():
  25. db = SessionLocal()
  26. if db.query(Question).first():
  27. print("题库已有数据,跳过")
  28. db.close()
  29. return
  30. for content, a, b, c, d, correct, kp in DATA:
  31. db.add(Question(content=content, option_a=a, option_b=b, option_c=c, option_d=d, correct_option=correct, knowledge_point=kp))
  32. db.commit()
  33. db.close()
  34. print("已插入 %d 道题目" % len(DATA))
  35. if __name__ == "__main__":
  36. main()