Skip to content

A Simple online shopping mall website's backend. Written by FastAPI.

License

Notifications You must be signed in to change notification settings

Greedy-Nattinessers/Shop-BE

Repository files navigation

Shop-BE

Tests

codecov

Quality Gate Status

最近一次的测试覆盖

coverage

部署方式 🛠️

必须拥有以下环境:

安装指定的 Python 版本:

uv python install

如果在 Linux 下,必须先安装前置的 MySQL 客户端依赖。

Debian / Ubuntu:

sudo apt-get install python3-dev default-libmysqlclient-dev build-essential pkg-config

Red Hat / CentOS:

sudo yum install python3-devel mysql-devel pkgconfig

安装项目依赖:

uv sync

如果安装依赖过慢希望指定 PyPI 镜像源,请添加 --index "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple" 参数。

如果是在开发环境下需要运行测试代码,可以使用以下命令安装开发环境下的依赖:

uv sync --dev

修改Services/Config/config.toml.sample中的相应配置信息并保存为config.toml:

程序会检测数据库内是否是初次运行,如果没有则会自动创建数据库中的各表结构。

第一个注册的用户会被自动设置为管理员,但删除到最后一个用户时不会将其设置为管理员。

运行方式 🚀

如果是调试 FastAPI 服务,可以使用以下命令:

uv run uvicorn main:app --reload

部署,推荐使用 Docker 来完成。

拉取仓库后,先在本地执行一次uv sync 创建依赖列表。 如果你希望使用后端和数据库一同被 Docker 托管,请修改docker-compose.yml中的环境变量:

services:
  web:
    container_name: web
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "8000:8000"
    depends_on:
      - mysql_db

  mysql_db:
    image: mysql:8.0
    container_name: mysql_db
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: password # 修改为自己的密码
      MYSQL_DATABASE: shop_be # 修改为自己的数据库名
    ports:
      - "3306:3306"
    volumes:
      - mysql_data:/var/lib/mysql

volumes:
  mysql_data:

之后在 config.toml 中填入同样的信息即可。host字段填入 mysql_db

如果希望后端连接外置数据库,直接删去docker-compose.yml中的mysql_db服务和依赖即可。

About

A Simple online shopping mall website's backend. Written by FastAPI.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published