# classification_system_server **Repository Path**: L_DDDY/classification_system_server ## Basic Information - **Project Name**: classification_system_server - **Description**: A demo project with Django - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-09-15 - **Last Updated**: 2024-01-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 图像分类系统 ## 开发环境搭建 请确保安装了 python 3.x.y 检查 python 版本: ```shell python --version ``` 或者: ```shell python3 --version ``` ### 虚拟环境 创建虚拟环境 `dev_env` ```shell python -m venv dev_env ``` 激活虚拟环境(Windows): ```shell dev_env\Scripts\activate ``` 在虚拟环境中安装所需的包: ```shell pip install djangorestframework pip install markdown # Markdown support for the browsable API. pip install django-filter # Filtering support ``` ### 配置数据源 #### sqlite Django 支持 sqlite,只需在 `classification/settings.py` 中设置 sqlite 为默认数据源,无需额外的数据库配置: ```python DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3', } } ``` #### 其他数据库 若使用外部数据库软件提供的接口,则需要安装对应的数据库驱动,然后在 `classification/settings.py` 中进行数据源配置: 配置项: - `ENGINE`:指定的数据库驱动 - `NAME`:数据库名称 - `USER`:用户名 - `PASSWRD`:密码 - `HOST`:数据库服务器的主机名 - `PORT`:数据库软件监听的端口号 以 PostgreSQL 为例: 安装数据库驱动 `psycopg2`: ```shell pip install psycopg2 ``` 在 `settings.py` 中修改数据源: ```python DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'db_classification_system', 'USER': 'classification_system', 'PASSWORD': 'your_password', 'HOST': 'hostname', 'PORT': '5432', } } ``` ### 迁移操作 运行数据库迁移: ```shell python manage.py makemigrations python manage.py migrate ``` 如果出现 `django.db.utils.OperationalError` 错误,可能是当前数据库用户没有足够的权限,推荐的做法是对该用户赋予足够的权限。 不建议直接将用户改为 `postgres` 再执行迁移,尽管这种做法可能是有效的。 有关迁移操作的注意事项: - 尽可能将数据库表的创建和修改完全交由 Django 的迁移系统管理,而不是手动地修改或删除数据库表。 - 在Django中执行迁移操作后,如果手动将某个表删除,再次执行迁移,Django 不会重新创建这个表。 - 这是因为 Django 的迁移文件已经记录了该表的存在,而 Django 不会尝试重新创建已经存在的表。 如何重新创建被手动删除的表: 1. 删除该应用程序(app)中除了 `__init__.py` 之外的所有迁移文件,并在数据库中删除 `django_migrations` 表中所有关于该 app 的相关记录。 2. 执行 `python manage.py makemigrations your_app_name` 生成新的迁移文件,执行 `python manage.py migrate` 将迁移应用到数据库中。 ### 运行 运行: ```shell python manage.py runserver ``` ### 单元测试 可以在 app 的 `tests.py` 中编写单元测试 运行单元测试: ```shell python manage.py test mainapp ```