liuyuqi-dellpc 1 year ago
parent
commit
48580bdaf9
61 changed files with 79 additions and 70 deletions
  1. 1 1
      backend/alembic/env.py
  2. 14 0
      backend/app.py
  3. 0 9
      backend/app/__init__.py
  4. 2 2
      backend/apps/__init__.py
  5. 0 0
      backend/apps/api/__init__.py
  6. 5 5
      backend/apps/api/deps.py
  7. 0 0
      backend/apps/api/home.py
  8. 3 3
      backend/apps/api/routes.py
  9. 0 0
      backend/apps/api/v1/__init__.py
  10. 2 2
      backend/apps/api/v1/image_inference.py
  11. 3 3
      backend/apps/api/v1/items.py
  12. 8 8
      backend/apps/api/v1/login.py
  13. 8 8
      backend/apps/api/v1/users.py
  14. 3 3
      backend/apps/api/v1/utils.py
  15. 0 0
      backend/apps/common/__init__.py
  16. 1 1
      backend/apps/common/redis.py
  17. 1 1
      backend/apps/common/security.py
  18. 0 0
      backend/apps/config.py
  19. 0 0
      backend/apps/extensions/__init__.py
  20. 3 3
      backend/apps/extensions/db.py
  21. 2 2
      backend/apps/extensions/hook.py
  22. 0 0
      backend/apps/models/__init__.py
  23. 0 0
      backend/apps/models/admin.py
  24. 3 3
      backend/apps/models/crud.py
  25. 0 0
      backend/apps/models/item.py
  26. 0 0
      backend/apps/models/models.py
  27. 0 0
      backend/apps/models/user.py
  28. 0 0
      backend/apps/service/__init__.py
  29. 0 0
      backend/apps/service/image_inference.py
  30. 0 0
      backend/apps/service/question_classification_service.py
  31. 0 0
      backend/apps/templates/email-templates/build/new_account.html
  32. 0 0
      backend/apps/templates/email-templates/build/reset_password.html
  33. 0 0
      backend/apps/templates/email-templates/build/test_email.html
  34. 0 0
      backend/apps/templates/email-templates/src/new_account.mjml
  35. 0 0
      backend/apps/templates/email-templates/src/reset_password.mjml
  36. 0 0
      backend/apps/templates/email-templates/src/test_email.mjml
  37. 0 0
      backend/apps/templates/home.html
  38. 0 0
      backend/apps/tests/__init__.py
  39. 0 0
      backend/apps/tests/api/__init__.py
  40. 0 0
      backend/apps/tests/api/routes/__init__.py
  41. 1 1
      backend/apps/tests/api/routes/test_items.py
  42. 1 1
      backend/apps/tests/api/routes/test_login.py
  43. 2 2
      backend/apps/tests/api/routes/test_users.py
  44. 3 3
      backend/apps/tests/conftest.py
  45. 0 0
      backend/apps/tests/crud/__init__.py
  46. 2 2
      backend/apps/tests/crud/test_user.py
  47. 0 0
      backend/apps/tests/scripts/__init__.py
  48. 0 0
      backend/apps/tests/scripts/test_backend_pre_start.py
  49. 0 0
      backend/apps/tests/scripts/test_test_pre_start.py
  50. 0 0
      backend/apps/tests/utils/__init__.py
  51. 0 0
      backend/apps/tests/utils/docker.py
  52. 3 3
      backend/apps/tests/utils/item.py
  53. 2 2
      backend/apps/tests/utils/user.py
  54. 0 0
      backend/apps/tests/utils/utils.py
  55. 0 0
      backend/apps/utils/__init__.py
  56. 1 1
      backend/apps/utils/log_util.py
  57. 1 1
      backend/apps/utils/mail_util.py
  58. 0 0
      backend/apps/utils/mongo_util.py
  59. 0 0
      backend/apps/utils/redis_util.py
  60. 0 0
      deploy/mysql/init.sql
  61. 4 0
      scripts/start.sh

+ 1 - 1
backend/alembic/env.py

@@ -18,7 +18,7 @@ fileConfig(config.config_file_name)
 # target_metadata = mymodel.Base.metadata
 # target_metadata = None
 
-from app.models import SQLModel  # noqa
+from apps.models import SQLModel  # noqa
 
 target_metadata = SQLModel.metadata
 

+ 14 - 0
backend/app.py

@@ -0,0 +1,14 @@
+#!/usr/bin/env python
+# -*- encoding: utf-8 -*-
+"""
+@Contact :   liuyuqi.gov@msn.cn
+@Time    :   2024/04/02 17:16:51
+@License :   Copyright © 2017-2022 liuyuqi. All Rights Reserved.
+@Desc    :   enter point
+"""
+
+from fastapi.applications import FastAPI
+from apps import create_app
+
+app: FastAPI = create_app()
+

+ 0 - 9
backend/app/__init__.py

@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-"""
-@Contact :   liuyuqi.gov@msn.cn
-@Time    :   2024/03/20 12:10:42
-@License :   Copyright © 2017-2022 liuyuqi. All Rights Reserved.
-@Desc    :
-"""
-
-__version__ = "0.0.2"

+ 2 - 2
backend/app/app.py → backend/apps/__init__.py

@@ -5,8 +5,8 @@
 @License :   Copyright © 2017-2022 liuyuqi. All Rights Reserved.
 @Desc    :
 """
-from app.config import settings
-from app.extensions.hook import (init_banner, init_middlewares, register_db,
+from apps.config import settings
+from apps.extensions.hook import (init_banner, init_middlewares, register_db,
                                  register_exception_handlers, register_routes)
 
 from fastapi import FastAPI

+ 0 - 0
backend/app/api/__init__.py → backend/apps/api/__init__.py


+ 5 - 5
backend/app/api/deps.py → backend/apps/api/deps.py

@@ -1,11 +1,11 @@
 from collections.abc import Generator
 from typing import Annotated
 
-from app.common import security
-from app.config import settings
-from app.extensions.db import engine
-from app.models.models import TokenPayload
-from app.models.user import User
+from apps.common import security
+from apps.config import settings
+from apps.extensions.db import engine
+from apps.models.models import TokenPayload
+from apps.models.user import User
 from jose import JWTError, jwt
 from pydantic import ValidationError, EmailStr, Field, field_validator
 from sqlmodel import Session

+ 0 - 0
backend/app/api/home.py → backend/apps/api/home.py


+ 3 - 3
backend/app/api/routes.py → backend/apps/api/routes.py

@@ -6,9 +6,9 @@
 @Desc    :   api v1
 """
 
-from app.api import home
-from app.api.v1 import items, login, users, utils #, image_inference
-from app.config import settings
+from apps.api import home
+from apps.api.v1 import items, login, users, utils #, image_inference
+from apps.config import settings
 
 from fastapi import APIRouter
 

+ 0 - 0
backend/app/api/v1/__init__.py → backend/apps/api/v1/__init__.py


+ 2 - 2
backend/app/api/v1/image_inference.py → backend/apps/api/v1/image_inference.py

@@ -8,8 +8,8 @@
 
 from typing import Any
 
-from app.models.item import ItemsOut
-from app.service.image_inference import ImageClassificationService
+from apps.models.item import ItemsOut
+from apps.service.image_inference import ImageClassificationService
 
 from fastapi import APIRouter, File, UploadFile
 

+ 3 - 3
backend/app/api/v1/items.py → backend/apps/api/v1/items.py

@@ -8,9 +8,9 @@
 
 from typing import Any
 
-from app.api.deps import CurrentUser, SessionDep
-from app.models.item import Item, ItemCreate, ItemOut, ItemsOut, ItemUpdate
-from app.models.models import Message
+from apps.api.deps import CurrentUser, SessionDep
+from apps.models.item import Item, ItemCreate, ItemOut, ItemsOut, ItemUpdate
+from apps.models.models import Message
 from sqlmodel import func, select
 
 from fastapi import APIRouter, HTTPException

+ 8 - 8
backend/app/api/v1/login.py → backend/apps/api/v1/login.py

@@ -1,14 +1,14 @@
 from datetime import timedelta
 from typing import Annotated, Any
 
-from app.api.deps import CurrentUser, SessionDep, get_current_active_superuser
-from app.common import security
-from app.common.security import get_password_hash
-from app.config import settings
-from app.models import crud
-from app.models.models import Message, NewPassword, Token
-from app.models.user import UserOut
-from app.utils.mail_util import (generate_password_reset_token,
+from apps.api.deps import CurrentUser, SessionDep, get_current_active_superuser
+from apps.common import security
+from apps.common.security import get_password_hash
+from apps.config import settings
+from apps.models import crud
+from apps.models.models import Message, NewPassword, Token
+from apps.models.user import UserOut
+from apps.utils.mail_util import (generate_password_reset_token,
                                  generate_reset_password_email, send_email,
                                  verify_password_reset_token)
 

+ 8 - 8
backend/app/api/v1/users.py → backend/apps/api/v1/users.py

@@ -1,14 +1,14 @@
 from typing import Any
 
-from app.api.deps import CurrentUser, SessionDep, get_current_active_superuser
-from app.common.security import get_password_hash, verify_password
-from app.config import settings
-from app.models import crud
-from app.models.item import Item
-from app.models.models import Message
-from app.models.user import (UpdatePassword, User, UserCreate, UserCreateOpen,
+from apps.api.deps import CurrentUser, SessionDep, get_current_active_superuser
+from apps.common.security import get_password_hash, verify_password
+from apps.config import settings
+from apps.models import crud
+from apps.models.item import Item
+from apps.models.models import Message
+from apps.models.user import (UpdatePassword, User, UserCreate, UserCreateOpen,
                              UserOut, UsersOut, UserUpdate, UserUpdateMe)
-from app.utils.mail_util import generate_new_account_email, send_email
+from apps.utils.mail_util import generate_new_account_email, send_email
 from sqlmodel import col, delete, func, select
 
 from fastapi import APIRouter, Depends, HTTPException

+ 3 - 3
backend/app/api/v1/utils.py → backend/apps/api/v1/utils.py

@@ -1,6 +1,6 @@
-from app.api.deps import get_current_active_superuser
-from app.models.models import Message
-from app.utils.mail_util import generate_test_email, send_email
+from apps.api.deps import get_current_active_superuser
+from apps.models.models import Message
+from apps.utils.mail_util import generate_test_email, send_email
 from pydantic.networks import EmailStr
 
 from fastapi import APIRouter, BackgroundTasks, Depends

+ 0 - 0
backend/app/common/__init__.py → backend/apps/common/__init__.py


+ 1 - 1
backend/app/common/redis.py → backend/apps/common/redis.py

@@ -1,6 +1,6 @@
 from datetime import timedelta
 
-from app.models import CustomModel
+from apps.models import CustomModel
 from redis.asyncio import Redis
 
 redis_client: Redis = None  # type: ignore

+ 1 - 1
backend/app/common/security.py → backend/apps/common/security.py

@@ -1,7 +1,7 @@
 from datetime import datetime, timedelta
 from typing import Any
 
-from app.config import settings
+from apps.config import settings
 from jose import jwt
 from passlib.context import CryptContext
 

+ 0 - 0
backend/app/config.py → backend/apps/config.py


+ 0 - 0
backend/app/extensions/__init__.py → backend/apps/extensions/__init__.py


+ 3 - 3
backend/app/extensions/db.py → backend/apps/extensions/db.py

@@ -1,6 +1,6 @@
-from app.config import settings
-from app.models import crud
-from app.models.user import User, UserCreate
+from apps.config import settings
+from apps.models import crud
+from apps.models.user import User, UserCreate
 from sqlmodel import Session, SQLModel, create_engine, select
 
 # postgres

+ 2 - 2
backend/app/extensions/hook.py → backend/apps/extensions/hook.py

@@ -7,8 +7,8 @@
 """
 import logging
 
-from app.api import api_router
-from app.config import settings
+from apps.api import api_router
+from apps.config import settings
 from starlette.middleware.cors import CORSMiddleware
 
 from fastapi import FastAPI

+ 0 - 0
backend/app/models/__init__.py → backend/apps/models/__init__.py


+ 0 - 0
backend/app/models/admin.py → backend/apps/models/admin.py


+ 3 - 3
backend/app/models/crud.py → backend/apps/models/crud.py

@@ -1,8 +1,8 @@
 from typing import Any
 
-from app.common.security import get_password_hash, verify_password
-from app.models.item import Item, ItemCreate
-from app.models.user import User, UserCreate, UserUpdate
+from apps.common.security import get_password_hash, verify_password
+from apps.models.item import Item, ItemCreate
+from apps.models.user import User, UserCreate, UserUpdate
 from sqlmodel import Session, select
 
 

+ 0 - 0
backend/app/models/item.py → backend/apps/models/item.py


+ 0 - 0
backend/app/models/models.py → backend/apps/models/models.py


+ 0 - 0
backend/app/models/user.py → backend/apps/models/user.py


+ 0 - 0
backend/app/service/__init__.py → backend/apps/service/__init__.py


+ 0 - 0
backend/app/service/image_inference.py → backend/apps/service/image_inference.py


+ 0 - 0
backend/app/service/question_classification_service.py → backend/apps/service/question_classification_service.py


+ 0 - 0
backend/app/templates/email-templates/build/new_account.html → backend/apps/templates/email-templates/build/new_account.html


+ 0 - 0
backend/app/templates/email-templates/build/reset_password.html → backend/apps/templates/email-templates/build/reset_password.html


+ 0 - 0
backend/app/templates/email-templates/build/test_email.html → backend/apps/templates/email-templates/build/test_email.html


+ 0 - 0
backend/app/templates/email-templates/src/new_account.mjml → backend/apps/templates/email-templates/src/new_account.mjml


+ 0 - 0
backend/app/templates/email-templates/src/reset_password.mjml → backend/apps/templates/email-templates/src/reset_password.mjml


+ 0 - 0
backend/app/templates/email-templates/src/test_email.mjml → backend/apps/templates/email-templates/src/test_email.mjml


+ 0 - 0
backend/app/templates/home.html → backend/apps/templates/home.html


+ 0 - 0
backend/app/tests/__init__.py → backend/apps/tests/__init__.py


+ 0 - 0
backend/app/tests/api/__init__.py → backend/apps/tests/api/__init__.py


+ 0 - 0
backend/app/tests/api/routes/__init__.py → backend/apps/tests/api/routes/__init__.py


+ 1 - 1
backend/app/tests/api/routes/test_items.py → backend/apps/tests/api/routes/test_items.py

@@ -1,5 +1,5 @@
 from app.core.config import settings
-from app.tests.utils.item import create_random_item
+from apps.tests.utils.item import create_random_item
 from sqlmodel import Session
 
 from fastapi.testclient import TestClient

+ 1 - 1
backend/app/tests/api/routes/test_login.py → backend/apps/tests/api/routes/test_login.py

@@ -1,7 +1,7 @@
 from unittest.mock import patch
 
 from app.core.config import settings
-from app.utils import generate_password_reset_token
+from apps.utils import generate_password_reset_token
 
 from fastapi.testclient import TestClient
 

+ 2 - 2
backend/app/tests/api/routes/test_users.py → backend/apps/tests/api/routes/test_users.py

@@ -2,8 +2,8 @@ from unittest.mock import patch
 
 from app import crud
 from app.core.config import settings
-from app.models import UserCreate
-from app.tests.utils.utils import random_email, random_lower_string
+from apps.models import UserCreate
+from apps.tests.utils.utils import random_email, random_lower_string
 from sqlmodel import Session
 
 from fastapi.testclient import TestClient

+ 3 - 3
backend/app/tests/conftest.py → backend/apps/tests/conftest.py

@@ -4,9 +4,9 @@ import pytest
 from app.core.config import settings
 from app.core.db import engine, init_db
 from app.main import app
-from app.models import Item, User
-from app.tests.utils.user import authentication_token_from_email
-from app.tests.utils.utils import get_superuser_token_headers
+from apps.models import Item, User
+from apps.tests.utils.user import authentication_token_from_email
+from apps.tests.utils.utils import get_superuser_token_headers
 from sqlmodel import Session, delete
 
 from fastapi.testclient import TestClient

+ 0 - 0
backend/app/tests/crud/__init__.py → backend/apps/tests/crud/__init__.py


+ 2 - 2
backend/app/tests/crud/test_user.py → backend/apps/tests/crud/test_user.py

@@ -1,6 +1,6 @@
 from app import crud
-from app.models import User, UserCreate, UserUpdate
-from app.tests.utils.utils import random_email, random_lower_string
+from apps.models import User, UserCreate, UserUpdate
+from apps.tests.utils.utils import random_email, random_lower_string
 from app.utils.security import verify_password
 from sqlmodel import Session
 

+ 0 - 0
backend/app/tests/scripts/__init__.py → backend/apps/tests/scripts/__init__.py


+ 0 - 0
backend/app/tests/scripts/test_backend_pre_start.py → backend/apps/tests/scripts/test_backend_pre_start.py


+ 0 - 0
backend/app/tests/scripts/test_test_pre_start.py → backend/apps/tests/scripts/test_test_pre_start.py


+ 0 - 0
backend/app/tests/utils/__init__.py → backend/apps/tests/utils/__init__.py


+ 0 - 0
backend/app/tests/utils/docker.py → backend/apps/tests/utils/docker.py


+ 3 - 3
backend/app/tests/utils/item.py → backend/apps/tests/utils/item.py

@@ -1,7 +1,7 @@
 from app import crud
-from app.models import Item, ItemCreate
-from app.tests.utils.user import create_random_user
-from app.tests.utils.utils import random_lower_string
+from apps.models import Item, ItemCreate
+from apps.tests.utils.user import create_random_user
+from apps.tests.utils.utils import random_lower_string
 from sqlmodel import Session
 
 

+ 2 - 2
backend/app/tests/utils/user.py → backend/apps/tests/utils/user.py

@@ -1,7 +1,7 @@
 from app import crud
 from app.core.config import settings
-from app.models import User, UserCreate, UserUpdate
-from app.tests.utils.utils import random_email, random_lower_string
+from apps.models import User, UserCreate, UserUpdate
+from apps.tests.utils.utils import random_email, random_lower_string
 from sqlmodel import Session
 
 from fastapi.testclient import TestClient

+ 0 - 0
backend/app/tests/utils/utils.py → backend/apps/tests/utils/utils.py


+ 0 - 0
backend/app/utils/__init__.py → backend/apps/utils/__init__.py


+ 1 - 1
backend/app/utils/log_util.py → backend/apps/utils/log_util.py

@@ -2,7 +2,7 @@ import logging
 import sys
 from logging.handlers import TimedRotatingFileHandler, SocketHandler
 from pathlib import Path
-from app.config import settings
+from apps.config import settings
 
 class Log:
     ''''''

+ 1 - 1
backend/app/utils/mail_util.py → backend/apps/utils/mail_util.py

@@ -7,7 +7,7 @@ from pathlib import Path
 from typing import Any
 
 import emails  # type: ignore
-from app.config import settings
+from apps.config import settings
 from jinja2 import Template
 from jose import JWTError, jwt
 

+ 0 - 0
backend/app/utils/mongo_util.py → backend/apps/utils/mongo_util.py


+ 0 - 0
backend/app/utils/redis_util.py → backend/apps/utils/redis_util.py


+ 0 - 0
deploy/mysql/init.sql


+ 4 - 0
scripts/start.sh

@@ -16,6 +16,10 @@ poetry install
 poetry shell
 python main.py
 
+function run(){
+    uvicorn app:app --reload
+}
+
 function docker_compose_build() {
     docker compose build -f docker-compose.debug.yml
     docker compse down -v --remove-orphans