diff --git a/Teachers/database.py b/Teachers/database.py index 07ef505..7e17ed4 100644 --- a/Teachers/database.py +++ b/Teachers/database.py @@ -1,8 +1,18 @@ from sqlalchemy import * from sqlalchemy.orm import sessionmaker,declarative_base -db_tea = 'mysql+pymysql://root:123456@127.0.0.1:3306/student_manage_system?charset=utf8mb4' -engine1 = create_engine(db_tea) +# 导入.env参数 +import os +from dotenv import load_dotenv +load_dotenv( ) +DB_USER = os.getenv("DB_USER", "root") +DB_PASSWORD = os.getenv("DB_PASSWORD", "") +DB_HOST = os.getenv("DB_HOST", "localhost") +DB_PORT = os.getenv("DB_PORT", "3306") +DB_NAME = os.getenv("DB_NAME", "student_manage_system") + +db_url = f"mysql+pymysql://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}?charset=utf8mb4" +engine1 = create_engine(db_url) Base = declarative_base() Session = sessionmaker(bind=engine1 diff --git a/Teachers/main.py b/Teachers/main.py index 1ec14a3..523130b 100644 --- a/Teachers/main.py +++ b/Teachers/main.py @@ -1,6 +1,9 @@ -from fastapi import FastAPI +from fastapi import FastAPI,APIRouter from Teachers.model.tea_model import * from api.tea_api import tea_api + +Teachers_API = APIRouter() + app = FastAPI() app.include_router(tea_api) diff --git a/class_management/api/class_management_api.py b/class_management/api/class_management_api.py index 53099de..e349b55 100644 --- a/class_management/api/class_management_api.py +++ b/class_management/api/class_management_api.py @@ -1,9 +1,9 @@ from datetime import date from fastapi import APIRouter,Depends,HTTPException,Query -from dao.class_management_dao import add_class_dao, update_class_dao, get_class_dao, delete_class_dao -from database import get_db -from schema.class_management_request import ClassCreate, ClassResponse, ClassUpdate +from class_management.dao.class_management_dao import add_class_dao, update_class_dao, get_class_dao, delete_class_dao +from class_management.database import get_db +from class_management.schema.class_management_request import ClassCreate, ClassResponse, ClassUpdate class_api = APIRouter(tags=['班级管理模块']) diff --git a/class_management/dao/class_management_dao.py b/class_management/dao/class_management_dao.py index 2a38835..319420b 100644 --- a/class_management/dao/class_management_dao.py +++ b/class_management/dao/class_management_dao.py @@ -1,4 +1,4 @@ -from model.class_management_model import ClassInfo +from class_management.model.class_management_model import ClassInfo from sqlalchemy.orm import Session diff --git a/class_management/database.py b/class_management/database.py index 259aba1..e3b772a 100644 --- a/class_management/database.py +++ b/class_management/database.py @@ -1,7 +1,17 @@ from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker,declarative_base -class_management_rul = "mysql+pymysql://root:123456@localhost:3306/student_manage_system?charset=utf8mb4" +# 导入.env参数 +import os +from dotenv import load_dotenv +load_dotenv( ) +DB_USER = os.getenv("DB_USER", "root") +DB_PASSWORD = os.getenv("DB_PASSWORD", "") +DB_HOST = os.getenv("DB_HOST", "localhost") +DB_PORT = os.getenv("DB_PORT", "3306") +DB_NAME = os.getenv("DB_NAME", "student_manage_system") + +class_management_rul = f"mysql+pymysql://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}?charset=utf8mb4" engine = create_engine(class_management_rul) SessionLocal = sessionmaker(bind=engine,autocommit=False, autoflush=False) diff --git a/class_management/main.py b/class_management/main.py index a44634f..eeb6796 100644 --- a/class_management/main.py +++ b/class_management/main.py @@ -1,8 +1,11 @@ from fastapi import FastAPI,APIRouter -from api.class_management_api import class_api -from model.class_management_model import ClassInfo -from database import Base,engine -import model +from class_management.api.class_management_api import class_api +from class_management.model.class_management_model import ClassInfo +from class_management.database import Base,engine +# import model + +Classes_API = APIRouter() + app = FastAPI() app.include_router(class_api) diff --git a/class_management/model/class_management_model.py b/class_management/model/class_management_model.py index e8fae9a..af7126c 100644 --- a/class_management/model/class_management_model.py +++ b/class_management/model/class_management_model.py @@ -1,10 +1,10 @@ from sqlalchemy import Column, Integer, String, Date, ForeignKey from sqlalchemy.dialects.mysql import DATETIME from datetime import datetime -from database import Base +from class_management.database import Base class ClassInfo(Base): - __tablename__ = 'class' + __tablename__ = 'classes' id = Column(Integer ,primary_key=True @@ -20,16 +20,16 @@ class ClassInfo(Base): ,comment='班级名称' ) head_teacher_id = Column(Integer - ,ForeignKey('teacher.id') + # ,ForeignKey('teacher.id') ,comment='班主任编号' ) coach_teacher_id = Column(Integer - ,ForeignKey('teacher.id') + # ,ForeignKey('teacher.id') ,comment='授课老师编号' ) tutor_teacher_id = Column(Integer - ,ForeignKey('teacher.id') + # ,ForeignKey('teacher.id') ,comment='助教老师编号' ) # class_teacher = Column(String(50) diff --git a/main.py b/main.py index fef2276..ccadca8 100644 --- a/main.py +++ b/main.py @@ -1,11 +1,22 @@ -from fastapi import FastAPI +from fastapi import FastAPI,APIRouter +from class_management.main import Classes_API +from scores.main import Scores_API +from stu_jiuye.main import Shtudent_Jiuye +from students.main import Students_API +from Teachers.main import Teachers_API -app = FastAPI() +app = FastAPI(title="学生管理系统") + +app.include_router(Classes_API,tags=["classes"]) +app.include_router(Scores_API,tags=["scores"]) +app.include_router(Shtudent_Jiuye,tags=["Employments"]) +app.include_router(Students_API,tags=["students"]) +app.include_router(Teachers_API,tags=["teachers"]) -@app.get("/") def main(): print("Hello from student-manage-system!") if __name__ == "__main__": - main() + import uvicorn + uvicorn.run("main:app", host="0.0.0.0", port=59000) diff --git a/scores/database.py b/scores/database.py index a88f8d9..012cf08 100644 --- a/scores/database.py +++ b/scores/database.py @@ -1,7 +1,17 @@ from sqlalchemy import * from sqlalchemy.orm import declarative_base,sessionmaker -db_url='mysql+pymysql://root:123456@127.0.0.1:3306/student_manage_system?charset=utf8mb4' +# 导入.env参数 +import os +from dotenv import load_dotenv +load_dotenv( ) +DB_USER = os.getenv("DB_USER", "root") +DB_PASSWORD = os.getenv("DB_PASSWORD", "") +DB_HOST = os.getenv("DB_HOST", "localhost") +DB_PORT = os.getenv("DB_PORT", "3306") +DB_NAME = os.getenv("DB_NAME", "student_manage_system") + +db_url = f"mysql+pymysql://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}?charset=utf8mb4" engine = create_engine(db_url) Base = declarative_base() diff --git a/scores/main.py b/scores/main.py index ee674a9..c1f44bc 100644 --- a/scores/main.py +++ b/scores/main.py @@ -1,6 +1,9 @@ -from fastapi import FastAPI +from fastapi import FastAPI,APIRouter from scores.api.score_api import score_api from scores.database import * + +Scores_API = APIRouter() + app = FastAPI() app.include_router(score_api) diff --git a/stu_jiuye/CURD_api.py b/stu_jiuye/CURD_api.py index eb02158..94b30dd 100644 --- a/stu_jiuye/CURD_api.py +++ b/stu_jiuye/CURD_api.py @@ -1,9 +1,9 @@ import datetime from fastapi import APIRouter,Depends,HTTPException -from dao import * +from stu_jiuye.dao import * from stu_jiuye.request import PostRequest, EmpResponse, AddRequest,AddResponse,CompRequest,CompResponse -from database import get_db +from stu_jiuye.database import get_db CURD=APIRouter() diff --git a/stu_jiuye/database.py b/stu_jiuye/database.py index 230d3a7..a48e1ba 100644 --- a/stu_jiuye/database.py +++ b/stu_jiuye/database.py @@ -1,7 +1,17 @@ from sqlalchemy import * from sqlalchemy.orm import declarative_base,sessionmaker -db_url = "mysql+pymysql://root:123456@127.0.0.1:3306/ai0824_001?charset=utf8mb4" +# 导入.env参数 +import os +from dotenv import load_dotenv +load_dotenv( ) +DB_USER = os.getenv("DB_USER", "root") +DB_PASSWORD = os.getenv("DB_PASSWORD", "") +DB_HOST = os.getenv("DB_HOST", "localhost") +DB_PORT = os.getenv("DB_PORT", "3306") +DB_NAME = os.getenv("DB_NAME", "student_manage_system") + +db_url = f"mysql+pymysql://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}?charset=utf8mb4" engine = create_engine(db_url , pool_size=50 , echo=True diff --git a/stu_jiuye/main.py b/stu_jiuye/main.py index f1a1b49..84ec032 100644 --- a/stu_jiuye/main.py +++ b/stu_jiuye/main.py @@ -1,7 +1,9 @@ -from fastapi import FastAPI -from CURD_api import CURD -from database import Base,engine -import model +from fastapi import FastAPI,APIRouter +from stu_jiuye.CURD_api import CURD +from stu_jiuye.database import Base,engine + +Shtudent_Jiuye = APIRouter() + app=FastAPI() Base.metadata.create_all(engine) app.include_router(CURD,tags=['就业管理系统']) diff --git a/students/api/students_api.py b/students/api/students_api.py index 2f5268b..d7c4186 100644 --- a/students/api/students_api.py +++ b/students/api/students_api.py @@ -6,9 +6,9 @@ from students.model.students_model import * from students.schema.students_request import * from students.databases import * -students_api = APIRouter() +s_api = APIRouter() -@students_api.get("/students" +@s_api.get("/students" ,summary='学生资料查询' ,description=f'筛选条件全为空即查询所有学生资料,输入薪资会查询大于输入薪资以上的学生。\n ' f'时间格式:YYYY-MM-DD' @@ -24,7 +24,7 @@ def get_students( stu:StudentsQuery = Depends() raise HTTPException(status_code=404, detail="没有找到符合条件的学生") -@students_api.post("/students" +@s_api.post("/students" ,summary='新增学生资料' ,description=f'学生ID自动分配,学生姓名、学生手机号和班级是必填项,不能为空。\n ' f'时间格式:YYYY-MM-DD' @@ -38,7 +38,7 @@ def add_student( stu:StudentsResponse = Depends() raise HTTPException(status_code=500, detail='手机号已有学生使用或必填项为空。') return result -@students_api.put("/students" +@s_api.put("/students" ,summary='学生资料更新' ,description=f'请输入需要更新信息的学生ID,学生手机号不可重复,填写即更新,为空即不更新。\n ' f'时间格式:YYYY-MM-DD' @@ -52,7 +52,7 @@ def get_students( stu:StudentsUpdate = Depends() raise HTTPException(status_code=500, detail='手机号已有学生使用。') return result -@students_api.delete("/students" +@s_api.delete("/students" ,summary='删除学生资料' ,description=f'输入需要删除的学生信息,删除条件任选,但不可全为空,工资筛选能删除大于等于输入工资的所有人。\n ' f'时间格式:YYYY-MM-DD' diff --git a/students/databases.py b/students/databases.py index 071ba3e..f57ee96 100644 --- a/students/databases.py +++ b/students/databases.py @@ -3,7 +3,17 @@ from sqlalchemy import * from sqlalchemy.orm import sessionmaker,declarative_base -db_url = "mysql+pymysql://root:420821@localhost:3306/student_manage_system?charset=utf8mb4" +# 导入.env参数 +import os +from dotenv import load_dotenv +load_dotenv( ) +DB_USER = os.getenv("DB_USER", "root") +DB_PASSWORD = os.getenv("DB_PASSWORD", "") +DB_HOST = os.getenv("DB_HOST", "localhost") +DB_PORT = os.getenv("DB_PORT", "3306") +DB_NAME = os.getenv("DB_NAME", "student_manage_system") + +db_url = f"mysql+pymysql://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}?charset=utf8mb4" engine1 = create_engine(db_url) diff --git a/students/main.py b/students/main.py index b1909a7..bc15e35 100644 --- a/students/main.py +++ b/students/main.py @@ -1,9 +1,11 @@ -from fastapi import FastAPI -from students.api.students_api import students_api +from fastapi import FastAPI,APIRouter +from students.api.students_api import s_api from students.databases import * from students.model import students_model from contextlib import asynccontextmanager +Students_API = APIRouter() + @asynccontextmanager async def lifespan(app: FastAPI): Base.metadata.create_all(engine1) @@ -12,14 +14,13 @@ async def lifespan(app: FastAPI): app = FastAPI(title="学生管理系统",lifespan=lifespan) # 这里必须把上面写的加上 -app.include_router(students_api,tags=["students"]) - - -def main(): - print("Hello from student-manage-system!") +app.include_router(s_api,tags=["students"]) if __name__ == "__main__": + def main(): + print("Hello from student-manage-system!") + import uvicorn uvicorn.run("main:app", host="0.0.0.0", port=51000)