fix: 修复后端导入路径问题以适配新工作区
- 统一使用绝对导入(backend 目录在 PYTHONPATH) - 修改 main.py、api 模块、core/security 的导入 - 移除 generate 模块(缺失 GenerateTask 模型) - 修复 database.py 导入 Base - backend/run.sh 添加 PYTHONPATH 设置 - 前端 topics.html 修复 currentUser 初始值和 Vue 结构 - 添加前端代码语法检查脚本 版本: v1.0.3 (导入修复版)
This commit is contained in:
@@ -4,9 +4,9 @@ from fastapi import APIRouter, Depends, HTTPException, status
|
||||
from sqlalchemy.orm import Session
|
||||
from typing import List
|
||||
|
||||
from ..core.security import get_current_admin_user
|
||||
from ..database import get_db
|
||||
from ..models import User, AuditLog
|
||||
from core.security import get_current_admin_user
|
||||
from app.database import get_db
|
||||
from app.models import User, AuditLog
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
@@ -56,7 +56,7 @@ async def create_user(
|
||||
)
|
||||
|
||||
# 导入密码哈希函数
|
||||
from ..core.security import get_password_hash
|
||||
from core.security import get_password_hash
|
||||
|
||||
# 创建新用户
|
||||
new_user = User(
|
||||
@@ -69,7 +69,7 @@ async def create_user(
|
||||
db.refresh(new_user)
|
||||
|
||||
# 记录审计日志
|
||||
from ..core.security import create_audit_log
|
||||
from core.security import create_audit_log
|
||||
create_audit_log(
|
||||
db=db,
|
||||
user_id=current_user.id,
|
||||
@@ -129,7 +129,7 @@ async def update_user(
|
||||
db.commit()
|
||||
|
||||
# 记录审计日志
|
||||
from ..core.security import create_audit_log
|
||||
from core.security import create_audit_log
|
||||
create_audit_log(
|
||||
db=db,
|
||||
user_id=current_user.id,
|
||||
@@ -169,7 +169,7 @@ async def delete_user(
|
||||
db.commit()
|
||||
|
||||
# 记录审计日志
|
||||
from ..core.security import create_audit_log
|
||||
from core.security import create_audit_log
|
||||
create_audit_log(
|
||||
db=db,
|
||||
user_id=current_user.id,
|
||||
|
||||
@@ -4,8 +4,8 @@ from fastapi import APIRouter, Depends, HTTPException, status
|
||||
from sqlalchemy.orm import Session
|
||||
from typing import Dict
|
||||
|
||||
from ..database import get_db
|
||||
from ..models import Topic
|
||||
from app.database import get_db
|
||||
from app.models import Topic
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@@ -6,12 +6,12 @@ from sqlalchemy.orm import Session
|
||||
from typing import Optional
|
||||
import secrets
|
||||
|
||||
from ..core.security import (
|
||||
from core.security import (
|
||||
verify_password, get_password_hash, create_access_token,
|
||||
create_audit_log
|
||||
)
|
||||
from ..database import get_db
|
||||
from ..models import User
|
||||
from app.database import get_db
|
||||
from app.models import User
|
||||
from pydantic import BaseModel
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
# 宇之然内容创作平台 - 文章生成API
|
||||
|
||||
from pydantic import BaseModel
|
||||
from datetime import datetime
|
||||
from fastapi import APIRouter, Depends, HTTPException, status
|
||||
from sqlalchemy.orm import Session
|
||||
from typing import List, Optional
|
||||
import asyncio
|
||||
|
||||
from ..core.security import get_current_user, create_audit_log
|
||||
from ..database import get_db
|
||||
from ..models import Topic, User, GenerateTask
|
||||
from core.security import get_current_user, create_audit_log
|
||||
from app.database import get_db
|
||||
from app.models import Topic, User, GenerateTask
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@ from fastapi import APIRouter, Depends
|
||||
from sqlalchemy.orm import Session
|
||||
from typing import List
|
||||
|
||||
from ..database import get_db
|
||||
from ..models import AuditLog
|
||||
from app.database import get_db
|
||||
from app.models import AuditLog
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
# 宇之然内容创作平台 - 文章发布API
|
||||
|
||||
from pydantic import BaseModel
|
||||
from datetime import datetime
|
||||
from fastapi import APIRouter, Depends, HTTPException, status
|
||||
from sqlalchemy.orm import Session
|
||||
import random
|
||||
|
||||
from ..core.security import get_current_user, create_audit_log
|
||||
from ..database import get_db
|
||||
from ..models import Topic, User
|
||||
from core.security import get_current_user, create_audit_log
|
||||
from app.database import get_db
|
||||
from app.models import Topic, User
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ from fastapi import APIRouter, Depends
|
||||
from sqlalchemy.orm import Session
|
||||
import os
|
||||
|
||||
from ..database import get_db
|
||||
from app.database import get_db
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
# 宇之然内容创作平台 - 选题管理API
|
||||
|
||||
from pydantic import BaseModel
|
||||
from datetime import datetime
|
||||
from fastapi import APIRouter, Depends, HTTPException, status, Query
|
||||
from sqlalchemy.orm import Session
|
||||
from typing import List, Optional
|
||||
import json
|
||||
|
||||
from ..core.security import get_current_admin_user, create_audit_log
|
||||
from ..database import get_db
|
||||
from ..models import Topic, User
|
||||
from core.security import get_current_admin_user, create_audit_log
|
||||
from app.database import get_db
|
||||
from app.models import Topic, User
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@@ -8,8 +8,8 @@ from fastapi.security import OAuth2PasswordBearer
|
||||
from fastapi import Depends, HTTPException, status
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from ..models import User
|
||||
from ..database import get_db
|
||||
from app.models import User
|
||||
from app.database import get_db
|
||||
|
||||
# 密码加密
|
||||
pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
|
||||
|
||||
@@ -39,5 +39,5 @@ def get_db():
|
||||
|
||||
def init_db():
|
||||
"""初始化数据库(创建表)"""
|
||||
from .models import Base
|
||||
from app.models import Base
|
||||
Base.metadata.create_all(bind=engine)
|
||||
@@ -1,13 +1,17 @@
|
||||
# 宇之然内容创作平台 - 主应用入口
|
||||
|
||||
import sys
|
||||
import os
|
||||
sys.path.insert(0, os.path.dirname(__file__))
|
||||
|
||||
from fastapi import FastAPI, Request
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
from contextlib import asynccontextmanager
|
||||
import uvicorn
|
||||
|
||||
from .database import init_db
|
||||
from .core.security import SECRET_KEY
|
||||
from .api import auth, topics, system, generate, publishing, articles, logs, admin
|
||||
from database import init_db
|
||||
from core.security import SECRET_KEY
|
||||
from api import auth, topics, system, publishing, articles, logs, admin
|
||||
|
||||
@asynccontextmanager
|
||||
async def lifespan(app: FastAPI):
|
||||
@@ -42,7 +46,6 @@ app.add_middleware(
|
||||
app.include_router(auth.router, prefix="/api/auth", tags=["认证"])
|
||||
app.include_router(topics.router, prefix="/api/topics", tags=["选题管理"])
|
||||
app.include_router(system.router, prefix="/api/system", tags=["系统状态"])
|
||||
app.include_router(generate.router, prefix="/api/system", tags=["批量操作"])
|
||||
app.include_router(publishing.router, prefix="/api/publishing", tags=["文章发布"])
|
||||
app.include_router(articles.router, prefix="/api/articles", tags=["文章预览"])
|
||||
app.include_router(logs.router, prefix="/api/logs", tags=["日志系统"])
|
||||
|
||||
@@ -32,6 +32,6 @@ fi
|
||||
|
||||
# 启动服务
|
||||
echo "正在启动后端服务 (端口 8001)..."
|
||||
uvicorn main:app --host 0.0.0.0 --port 8001 --reload
|
||||
PYTHONPATH=$(pwd) uvicorn main:app --host 0.0.0.0 --port 8001 --reload
|
||||
|
||||
echo "服务已停止"
|
||||
Reference in New Issue
Block a user