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