# Movie-KG-API **Repository Path**: cclloouudd/Movie-KG-API ## Basic Information - **Project Name**: Movie-KG-API - **Description**: 后端服务 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-05-16 - **Last Updated**: 2021-11-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于知识图谱的问答系统 ## API #### Admin ```plain /admin/ django控制台 /admin/doc/ django文档 ``` #### User ```bash /api/v1/login/ # POST params: username, password /api/v1/join/ # POST params: username, nickname, password /api/v1/follow// # POST 关注某人 params: token, followee_name /api/v1/unfollow// # POST 取关某人 params: token, followee_name /api/v1/user//followers/ # 获取追随某人的人, GET , params: username, start, end # pagable /api/v1/user//followee/ # 获取某人追随的人, GET , params: username, start, end # pagable /api/v1/feeds/ # 获取feeds GET params: token, start, end # pagable /api/v1/article/ # 发表文章 POST params: content , token, 可选参数: movie_id /api/v1/article/delete/ # 删除文章 GET params: article_id, token /api/v1/user//articles/ # 获取某人的文章 GET params: username, start, end # pagable /api/v1/collection/ # 创建收藏夹 POST params: name,private, token ; private=0公开, private=1私有 /api/v1/collections/ # 获取自己的所有的收藏夹列表 GET params: token /api/v1/user//collections/ # 获取某人公开的收藏夹列表 GET params: token /api/v1/collection//collect// # 收藏文章或电影 POST params: article_id, collection_id, token /api/v1/collection//uncollect// # 取消收藏文章或电影 POST params: article_id, collection_id, token /api/v1/collection// # 获取某个收藏夹中的内容 GET params: collection_id,token, start, end /api/v1/which_collections// # 查看某文章或电影被我收藏在哪些收藏夹里 GET, params: article_id, token /api/v1/read// # 增加阅读记录 POST ,params: article_id, token /api/v1/history/ # 获取我的阅读记录 GET ,params: token, start, end # pagable /recommend/user/ # 获取用户推荐 /recommend/movie/ # 获取电影推荐 ``` #### Subject ```plain GET /api/v1/subject/search/?name= GET /api/v1/subject/smart_search/?query= GET /api/v1/subject// GET /api/v1/subject/movie/search/?title= GET /api/v1/subject/movie// GET /api/v1/subject/person/search/?name= GET /api/v1/subject/person// ``` you can consider subject as the abstract class of movie and person. ## 常用命令 ### vnev 创建虚拟环境 `python3 -m venv venv` 启动虚拟环境 `source venv/bin/activate` 退出虚拟环境 `deactivate` ### requirements.txt 生成requirements.txt文件 `pip freeze > requirements.txt` 安装requirements.txt依赖 `pip install -r requirements.txt` ### mysql建库 ```mysql CREATE DATABASE movie_kg CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` ### 多settings文件 不同的settings文件用于不同的环境,MovieKgAPI.settings.dev.py用于开发,MovieKgAPI.settings.prod.py用于生产。 django会根据DJANGO_SETTINGS_MODULE这个环境变量来加载相应的settings文件, 阅读[manage.py](./manag.py)中的代码可知,如果没有设置DJANGO_SETTINGS_MODULE,它的默认值是MovieKgAPI.settings.dev。 我们可以在shell中运行`export DJANGO_SETTINGS_MODULE=MovieKgAPI.settings.prod`来设置这个环境变量。 也可以用`python manage.py migrate --settings=MovieKgAPI.settings.prod`的方式来指定使用哪一个文件。 ### 异步任务 定时 celery ```bash 启动worker celery -A MovieKgAPI worker -l info 启动beat celery -A MovieKgAPI beat -l info ``` ### docker ```bash 停止所有的container docker stop $(docker ps -aq) 删除所有container docker rm $(docker ps -aq) ``` ### 单元测试 ```bash python3 manage.py test coverage run --source '.' manage.py test -v 2 --settings=MovieKgAPI.settings.dev coverage html ``` 打开 htmlcov/index.html