在 conda 虚拟环境中部署
> conda create -n HolidayAPI python=3.8
> conda activate HolidayAPI
(HolidayAPI) > conda install django
(HolidayAPI) > conda install pyjwt
(HolidayAPI) > python .\manage.py runserver
或
conda install --yes --file requirements.txt
> curl -d username=rose -d password=12345 http://127.0.0.1:8000/user/signup
{"code": 201, "message": "Signed up successfully. ", "data": {"username": "rose"}}
> curl -d username=rose -d password=12345 http://127.0.0.1:8000/user/login
{"code": 200, "message": "Logged-in successfully. ", "data": {"username": "rose", "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1ODg5NjE0NTksImlhdCI6MTU4ODg3NTA1OSwiZGF0YSI6eyJ1c2VybmFtZSI6InJvc2UifX0.bzvIs2ZiRgECm0jpa0PXnRtackZP6e6FHYWXq0CPouo"}}
> curl -d date=1994-01-01 -d token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1ODg5NjE0NTksImlhdCI6MTU4ODg3NTA1OSwiZGF0YSI6eyJ1c2VybmFtZSI6InJvc2UifX0.bzvIs2ZiRgECm0jpa0PXnRtackZP6e6FHYWXq0CPouo http://127.0.0.1:8000/user/query
{"code": 200, "message": "Query was successfully. ", "data": {"HolidayName": "元旦"}}
> curl -d date=1994-10-01 -d token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1ODg5NjE0NTksImlhdCI6MTU4ODg3NTA1OSwiZGF0YSI6eyJ1c2VybmFtZSI6InJvc2UifX0.bzvIs2ZiRgECm0jpa0PXnRtackZP6e6FHYWXq0CPouo http://127.0.0.1:8000/user/query
{"code": 200, "message": "Query was successfully. ", "data": {"HolidayName": "国庆节"}}
> curl -d date=1994-12-25 -d token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1ODg5NjE0NTksImlhdCI6MTU4ODg3NTA1OSwiZGF0YSI6eyJ1c2VybmFtZSI6InJvc2UifX0.bzvIs2ZiRgECm0jpa0PXnRtackZP6e6FHYWXq0CPouo http://127.0.0.1:8000/user/query
{"code": 200, "message": "Query was successfully. ", "data": {"HolidayName": "圣诞节"}}
> sqlite3 db.sqlite3
SQLite version 3.31.1 2020-01-27 19:55:54
Enter ".help" for usage hints.
sqlite> .tables
auth_group django_admin_log
auth_group_permissions django_content_type
auth_permission django_migrations
auth_user django_session
auth_user_groups user_holiday
auth_user_user_permissions user_user
sqlite> select * from user_user;
1|rose|12345
sqlite> select * from user_holiday;
1|元旦|2000-01-01
2|圣诞节|2000-12-25
3|国庆节|2000-10-01
sqlite>
-
/user/signup
支持 POST 方法,接受 username 与 password 两个参数。返回注册成功或失败的 json 信息 -
/user/login
支持 POST 方法,接受 username 与 password 两个参数。登录成功时(用户存在且密码正确)返回带有 token 的 json 信息,否则给出登录失败的 json 信息。
/user/query
支持 POST 方法,接受 date(YYYY-MM-DD) 与 token 两个参数。数据库中已有如下三个节日- 每年的 01 月 01 日,元旦
- 每年的 12 月 25 日,圣诞节
- 每年的 10 月 01 日,国庆节。 未登录的情况下,token 无法被验证,返回未登录的 json 提示信息;已登录的情况下,返回查询节日结果 json 格式的信息。。
接口返回的 json 信息参考Google Cloud References,成功的请求有如下格式的返回信息
{
"code": 200,
"message": message,
"data": {
"username": username,
"token": token
}
}
其中'date'
键包括多个返回的数据值
{
"code": 401,
"message": message,
"error": [
{
"reason": "Unauthorized",
"message": message
}
]
}
其中'error'
键的值是多个错误信息的数组,每个错误包含了错误原因及信息