fullstack fastapi vuejs price aggregator
1.0.0
英国超市价格聚合器通过网络抓取。这是为我的大学项目作为 MVP 开发的,因此有些方面无法正常运行。我将来可能会更新它。
确保已安装 Docker 和 Node.js。
docker-compose up --build -d
。启动后端,并在第一次运行时构建所有必要的容器,这可能需要几分钟的时间。docker-compose exec backend bash
获取 shell。python manage.py createdb
。python manage.py seeddb
请注意,所有密码均设置为密码cd
进入客户端目录运行npm install
这将安装所需的节点模块。npm run serve
它将为客户端前端提供服务。 网址 | 描述 |
---|---|
0.0.0.0:8000/api | 后端 JSON API |
0.0.0.0:8000/文档 | 后端 OpenAPI/Swagger 生成的 API 参考文档 |
0.0.0.0:8000/redoc | ReDoc 提供的替代交互式文档 |
本地主机:9527 | 前端 VueJS 单页应用程序 |
后端包括一个 CLI,其很大程度上受到 Netflix 的 Dispatch 的启发。
typer
(与 FastAPI 是同一作者)用于为项目创建 CLI,并通过 manage.py 访问。
要运行命令,您需要在后端容器内运行一个 shell:
docker-compose run backend bash
要查看所有可用命令:
root@72293bee6b37:/app# python manage.py
Usage: manage.py [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
config Display application configuration.
createdb Creates an empty database.
createrole Add role to database.
createuser Create new user in the database.
develop Start a development server with reload.
dropdb Drop the existing database.
routes Display application routes and dependencies.
seeddb Add fake data to database.
shell Starts an interactive shell with app object imported.
root@72293bee6b37:/app# python manage.py routes
Application Endpoints
Path Methods Dependencies
----------------------------- --------- --------------------------------------------------------
/api/v1/users/ GET ['RoleChecker: Roles: admin,user']
/api/v1/users/ POST ['RoleChecker: Roles: admin,user']
/api/v1/users/{id} GET ['RoleChecker: Roles: admin,user']
/api/v1/users/{id} PUT ['RoleChecker: Roles: admin,user']
/api/v1/users/{id} DELETE ['RoleChecker: Roles: admin,user']
/api/v1/users/{id}/roles GET ['RoleChecker: Roles: admin,user']
/api/v1/users/{id}/roles PUT ['RoleChecker: Roles: admin,user']
/api/v1/users/{id}/shops GET ['RoleChecker: Roles: admin,user']
/api/v1/users/{id}/shops PUT ['RoleChecker: Roles: admin,user']
/api/v1/roles/ GET ['RoleChecker: Roles: admin,user']
/api/v1/roles/ POST ['RoleChecker: Roles: admin,user']
/api/v1/roles/{id} GET ['RoleChecker: Roles: admin,user']
/api/v1/roles/{id} PUT ['RoleChecker: Roles: admin,user']
/api/v1/roles/{id} DELETE ['RoleChecker: Roles: admin,user']
/api/v1/shops/ GET ['RoleChecker: Roles: admin,user']
/api/v1/shops/ POST ['RoleChecker: Roles: admin,user']
/api/v1/shops/{id} PUT ['RoleChecker: Roles: admin,user']
/api/v1/shops/{id} DELETE ['RoleChecker: Roles: admin,user']
/api/v1/shops/listings/ GET ['RoleChecker: Roles: admin,user']
/api/healthcheck GET []
python manage.py config
Application Configuration
Setting Value(s)
-------------------------- --------------------------------------------------------------------
APP_DIR /app/app
STATIC_DIR /app/app/static
EMAIL_TEMPLATES_DIR /app/app/static/email-templates/html
PROJECT_NAME Fastapi Backend
SERVER_HOST 0.0.0.0
CORS_WHITELIST ['http://localhost', 'http://localhost:8000', 'http://0.0.0.0:8000']
FASTAPI_ENV development
DEBUG False
LOG_LEVEL debug
FIRST_SUPERUSER [email protected]
FIRST_SUPERUSER_PASSWORD a5dbf43e07f4d19e5b73bc89a8f74
USERS_OPEN_REGISTRATION True
SECRET_KEY **********
JWT_AUTH_LIFETIME_SECONDS 604800
JWT_EMAIL_LIFETIME_SECONDS 3600
SMTP_USER [email protected]
SMTP_PASSWORD **********
SMTP_TLS False
SMTP_SSL False
SMTP_HOST mailhog
SMTP_PORT 1025
POSTGRES_USER postgres
POSTGRES_PASSWORD **********
POSTGRES_HOST postgres
POSTGRES_PORT 5432
POSTGRES_DB fastapi_backend