2Django-用户模块API文档
链接:https://pan.baidu.com/s/1qiR6J-lL54s6DcH5XjaLmg
提取码:****
一, 概述:
想用目前最新版的python3.10+django4.0做一个前后端分离的博客,目的有2点,第一是学习,第二是部署到自己的服务器上用于记录it相关知识的笔记
二, 事件定义:
1注册:新用户通过此功能可以注册,注册成功并且被审核通过的用户剋在自己的博客中发表自己的文章以及回复文章留言
2登录:用户可通过用户名密码进行登录,只有登录的用户才能使用后台功能
3修改个人信息:每个登录用户都可以编辑自己的个人描述,签名头像昵称等
三, 开发规范:
1后端环境:
Python3.10 + django4.0 + mysql8.0 + centos8
2通信协议:
http
3通信格式:
Json
4,API规范:
一定程度上符合RESTful定义
四, 数据库结构
|
字段名 |
类型 |
作用 |
备注1 |
备注2 |
|
username |
varchar(11) |
用户名 |
注册时填写 |
主键 |
|
nickname |
varchar(30) |
昵称 |
在博客中显示的名字(可修改) |
无 |
|
|
varchar(254) |
邮箱 |
预留 |
无 |
|
password |
varchar(32) |
密码 |
用户登录密码 |
无 |
|
phone |
varchar(11) |
手机号 |
无 |
无 |
|
avatar |
varchar(100) |
用户头像 |
无 |
无 |
|
sign |
varchar(50) |
用户签名 |
设个默认随机值 |
无 |
|
info |
varchar(150) |
个人简介 |
无 |
无 |
is_active |
tinyint |
是否为有效用户 |
默认注册为False |
无 |
create_time |
datetime |
创建时间 |
无 |
无 |
updated_time |
datetime |
更新时间 |
无 |
无 |
五, 接口说明:
1注册接口
url:http://127.0.0.1:8000/v1/users
1.1请求方式:
POST
1.2请求格式
Json
具体参数如下:
|
字段 |
含义 |
类型 |
备注 |
|
username |
用户名 |
CharField |
必填 |
|
|
邮箱 |
EmailField |
必填 |
|
password1 |
密码 |
CharField |
必填 |
|
Password2 |
密码 |
CharField |
必填 |
请求示例:
{‘username’: linuxTang, ‘email’: ‘66907360@qq.com’, ‘password1’: ‘123456’, ‘password2’: ‘123456’}
1.3响应格式:
json具体参数如下:
|
字段 |
含义 |
类型 |
备注 |
|
code |
状态 |
int |
默认正常时200,异常建1.4 |
|
username |
用户名 |
char |
无 |
|
data |
返回的数据对象 |
{ } |
{ token:xxx 此为会话保持的令牌-char } |
响应示例:
{‘code’: 200, ‘username’: ‘linuxTang’, ‘data’: {‘token’: ‘abcdefghigklmnopqrst’}}
1.4异常码
|
异常码 |
含义 |
备注 |
|
202 |
请求中无内容 |
|
|
203 |
请求中未提交用户名 |
|
|
204 |
请求中未提交邮箱 |
|
|
205 |
请求中未提交密码 |
|
|
206 |
两次提交密码不一致 |
即password1 != password2 |
|
207 |
用户名已存在 |
|
|
500 |
服务器异常 |
|
异常响应示例:
{‘code’:203, ‘error’:u’请输入用户名’}
2获取用户数据接口:
URL: http://127.0.0.1:8000/v1/users/<username>
2.1请求方式:
GET
2.2请求格式:
2.2.1 直接GET请求,可获取全量数据
2.2.2 GET请求后添加查询字符串,可根据字符串具体查询,例如
查询:http://127.0.0.1:8000/v1/users/<username>?nickname=1
2.3响应格式:
Json具体参数如下:
|
字段 |
含义 |
类型 |
备注 |
|
code |
状态 |
int |
请求成功返200,异常码见2.4 |
|
username |
用户名 |
char |
|
|
data |
响应的数据 |
{ } |
{‘info’:个人描述-char, ‘sign’:个人签名-char, ‘nickname’:昵称-char, ‘avatar’:头像地址-char} |
响应示例:
全量响应:
{‘凑得’:200, ‘username’:’linuxTang’,’data’:{‘nickname’:’tyj’,’sign’:’持续学习’,’avatar’:’header.jpg’,‘info’:’大河东区浪淘尽,数不尽的风云人物!’}}
局部响应:
{‘code’:200,’username’:’linuxTang’,’data’:{‘nickname’:’tyj’}}
2.4异常码:
|
异常码 |
含义 |
备注 |
|
208 |
用户名不存在 |
|
3修改个人信息接口:
URL: http://127.0.0.1:8000/v1/users/<username>
3.1请求方式:
PUT
3.2请求格式:
Json具体参数如下:
|
字段 |
含义 |
类型 |
备注 |
|
sign |
个人签名 |
char |
非必填 |
|
info |
个人描述 |
char |
非必填 |
|
nickname |
昵称 |
char |
非必填 |
该请求需要客户端在HTTP header里添加token,格式如下:
Authorization: token
请求示例:{‘sign’:xxx, ‘info’:xxx, ‘nicknaame’:xxx}
3.3响应格式:
Json具体参数如下:
|
字段 |
含义 |
类型 |
备注 |
|
code |
状态 |
Int |
正常为200,异常见3.4 |
|
username |
用户名 |
char |
此次请求的用户名 |
响应示例:{‘code’:200, ‘username’:’linuxTang’}
3.4异常码:
|
异常码 |
含义 |
备注 |
|
202 |
空提交 |
请求中无任何信息 |
异常响应示例:{‘code’:202, ‘error’:’please put data’}
上传头像接口
URL:http://127.0.0.11:8000/v1/users/<username>/avatar
4.1请求方式
POST multipart/form-data
4.2请求格式
具体参数如下:
|
字段 |
含义 |
类型 |
备注 |
|
avatar |
用户头像 |
char |
必填 |
该请求需要客户端在HTTP header里添加token,格式如下:
Authorization:token
4.3响应格式:
Json参数如下:
|
字段 |
含义 |
类型 |
备注 |
|
code |
状态 |
Int |
正常为200 |
|
username |
用户名 |
char |
此次修改的用户名 |
5获取token
登录请求:http://127.0.0.1:8000/v1/tokens
5.1请求方式:
POST
5.2请求格式:
Json具体参数如下:
|
字段 |
含义 |
类型 |
备注 |
|
username |
用户名 |
char |
必填 |
|
password |
密码 |
char |
必填 |
请求示例:{‘username’:’xxx’, ‘password’:’yyy’}
5.3响应格式:
Json参数如下:
|
字段 |
含义 |
类型 |
备注 |
|
code |
200 |
int |
正常200,异常码见5.4 |
|
Data |
响应的数据 |
{ } |
{‘token’:’fddfffff’} |
|
|
|
|
|
5.4异常码:
|
异常码 |
含义 |
备注 |
|
201 |
请求方式并非post |
|
|
201 |
请求为空 |
|
|
203 |
请求中未提交用户名 |
|
|
205 |
请求中未提交密码 |
|
|
208 |
用户名不存在 |
|
|
209 |
提交的密码不正确 |
|
异常码响应示例
{‘code’:205, ‘error’:’no password’}
六常见问题:
1注意个别客户端请求需要添加token传回到服务器,否则可能会出现异常

浙公网安备 33010602011771号