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 sqlalchemy.orm import Session
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from ..core.security import get_current_admin_user
|
from core.security import get_current_admin_user
|
||||||
from ..database import get_db
|
from app.database import get_db
|
||||||
from ..models import User, AuditLog
|
from app.models import User, AuditLog
|
||||||
|
|
||||||
router = APIRouter()
|
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(
|
new_user = User(
|
||||||
@@ -69,7 +69,7 @@ async def create_user(
|
|||||||
db.refresh(new_user)
|
db.refresh(new_user)
|
||||||
|
|
||||||
# 记录审计日志
|
# 记录审计日志
|
||||||
from ..core.security import create_audit_log
|
from core.security import create_audit_log
|
||||||
create_audit_log(
|
create_audit_log(
|
||||||
db=db,
|
db=db,
|
||||||
user_id=current_user.id,
|
user_id=current_user.id,
|
||||||
@@ -129,7 +129,7 @@ async def update_user(
|
|||||||
db.commit()
|
db.commit()
|
||||||
|
|
||||||
# 记录审计日志
|
# 记录审计日志
|
||||||
from ..core.security import create_audit_log
|
from core.security import create_audit_log
|
||||||
create_audit_log(
|
create_audit_log(
|
||||||
db=db,
|
db=db,
|
||||||
user_id=current_user.id,
|
user_id=current_user.id,
|
||||||
@@ -169,7 +169,7 @@ async def delete_user(
|
|||||||
db.commit()
|
db.commit()
|
||||||
|
|
||||||
# 记录审计日志
|
# 记录审计日志
|
||||||
from ..core.security import create_audit_log
|
from core.security import create_audit_log
|
||||||
create_audit_log(
|
create_audit_log(
|
||||||
db=db,
|
db=db,
|
||||||
user_id=current_user.id,
|
user_id=current_user.id,
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ from fastapi import APIRouter, Depends, HTTPException, status
|
|||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
from typing import Dict
|
from typing import Dict
|
||||||
|
|
||||||
from ..database import get_db
|
from app.database import get_db
|
||||||
from ..models import Topic
|
from app.models import Topic
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
|
|||||||
@@ -6,12 +6,12 @@ from sqlalchemy.orm import Session
|
|||||||
from typing import Optional
|
from typing import Optional
|
||||||
import secrets
|
import secrets
|
||||||
|
|
||||||
from ..core.security import (
|
from core.security import (
|
||||||
verify_password, get_password_hash, create_access_token,
|
verify_password, get_password_hash, create_access_token,
|
||||||
create_audit_log
|
create_audit_log
|
||||||
)
|
)
|
||||||
from ..database import get_db
|
from app.database import get_db
|
||||||
from ..models import User
|
from app.models import User
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|||||||
@@ -1,14 +1,15 @@
|
|||||||
# 宇之然内容创作平台 - 文章生成API
|
# 宇之然内容创作平台 - 文章生成API
|
||||||
|
|
||||||
|
from pydantic import BaseModel
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from fastapi import APIRouter, Depends, HTTPException, status
|
from fastapi import APIRouter, Depends, HTTPException, status
|
||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
import asyncio
|
import asyncio
|
||||||
|
|
||||||
from ..core.security import get_current_user, create_audit_log
|
from core.security import get_current_user, create_audit_log
|
||||||
from ..database import get_db
|
from app.database import get_db
|
||||||
from ..models import Topic, User, GenerateTask
|
from app.models import Topic, User, GenerateTask
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ from fastapi import APIRouter, Depends
|
|||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from ..database import get_db
|
from app.database import get_db
|
||||||
from ..models import AuditLog
|
from app.models import AuditLog
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,14 @@
|
|||||||
# 宇之然内容创作平台 - 文章发布API
|
# 宇之然内容创作平台 - 文章发布API
|
||||||
|
|
||||||
|
from pydantic import BaseModel
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from fastapi import APIRouter, Depends, HTTPException, status
|
from fastapi import APIRouter, Depends, HTTPException, status
|
||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
import random
|
import random
|
||||||
|
|
||||||
from ..core.security import get_current_user, create_audit_log
|
from core.security import get_current_user, create_audit_log
|
||||||
from ..database import get_db
|
from app.database import get_db
|
||||||
from ..models import Topic, User
|
from app.models import Topic, User
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ from fastapi import APIRouter, Depends
|
|||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from ..database import get_db
|
from app.database import get_db
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
|
|||||||
@@ -1,14 +1,15 @@
|
|||||||
# 宇之然内容创作平台 - 选题管理API
|
# 宇之然内容创作平台 - 选题管理API
|
||||||
|
|
||||||
|
from pydantic import BaseModel
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from fastapi import APIRouter, Depends, HTTPException, status, Query
|
from fastapi import APIRouter, Depends, HTTPException, status, Query
|
||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
import json
|
import json
|
||||||
|
|
||||||
from ..core.security import get_current_admin_user, create_audit_log
|
from core.security import get_current_admin_user, create_audit_log
|
||||||
from ..database import get_db
|
from app.database import get_db
|
||||||
from ..models import Topic, User
|
from app.models import Topic, User
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ from fastapi.security import OAuth2PasswordBearer
|
|||||||
from fastapi import Depends, HTTPException, status
|
from fastapi import Depends, HTTPException, status
|
||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
|
|
||||||
from ..models import User
|
from app.models import User
|
||||||
from ..database import get_db
|
from app.database import get_db
|
||||||
|
|
||||||
# 密码加密
|
# 密码加密
|
||||||
pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
|
pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
|
||||||
|
|||||||
@@ -39,5 +39,5 @@ def get_db():
|
|||||||
|
|
||||||
def init_db():
|
def init_db():
|
||||||
"""初始化数据库(创建表)"""
|
"""初始化数据库(创建表)"""
|
||||||
from .models import Base
|
from app.models import Base
|
||||||
Base.metadata.create_all(bind=engine)
|
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 import FastAPI, Request
|
||||||
from fastapi.middleware.cors import CORSMiddleware
|
from fastapi.middleware.cors import CORSMiddleware
|
||||||
from contextlib import asynccontextmanager
|
from contextlib import asynccontextmanager
|
||||||
import uvicorn
|
import uvicorn
|
||||||
|
|
||||||
from .database import init_db
|
from database import init_db
|
||||||
from .core.security import SECRET_KEY
|
from core.security import SECRET_KEY
|
||||||
from .api import auth, topics, system, generate, publishing, articles, logs, admin
|
from api import auth, topics, system, publishing, articles, logs, admin
|
||||||
|
|
||||||
@asynccontextmanager
|
@asynccontextmanager
|
||||||
async def lifespan(app: FastAPI):
|
async def lifespan(app: FastAPI):
|
||||||
@@ -42,7 +46,6 @@ app.add_middleware(
|
|||||||
app.include_router(auth.router, prefix="/api/auth", tags=["认证"])
|
app.include_router(auth.router, prefix="/api/auth", tags=["认证"])
|
||||||
app.include_router(topics.router, prefix="/api/topics", tags=["选题管理"])
|
app.include_router(topics.router, prefix="/api/topics", tags=["选题管理"])
|
||||||
app.include_router(system.router, prefix="/api/system", 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(publishing.router, prefix="/api/publishing", tags=["文章发布"])
|
||||||
app.include_router(articles.router, prefix="/api/articles", tags=["文章预览"])
|
app.include_router(articles.router, prefix="/api/articles", tags=["文章预览"])
|
||||||
app.include_router(logs.router, prefix="/api/logs", tags=["日志系统"])
|
app.include_router(logs.router, prefix="/api/logs", tags=["日志系统"])
|
||||||
|
|||||||
@@ -32,6 +32,6 @@ fi
|
|||||||
|
|
||||||
# 启动服务
|
# 启动服务
|
||||||
echo "正在启动后端服务 (端口 8001)..."
|
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 "服务已停止"
|
echo "服务已停止"
|
||||||
Reference in New Issue
Block a user