1. 博客保存接口设计
1.请求方式
选项 | 方案 |
---|---|
请求方法 | POST |
请求地址 | /writeblog/ |
2.请求参数:表单
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
title | string | 是 | 标题 |
avatar | file | 是 | 标题图 |
category | string | 是 | 栏目分类 |
tags | string | 是 | 标签 |
sumary | string | 是 | 文章摘要 |
content | string | 是 | 文章内容 |
3.响应结果:HTML
字段 | 说明 |
---|---|
提交失败 | 响应错误提示 |
提交成功 | 跳转到详情页面 |
2. 用户中心修改接口实现
from home.models import ArticleCategory,Article
class WriteBlogView(LoginRequiredMixin,View):
def post(self,request):
#接收数据
avatar=request.FILES.get('avatar')
title=request.POST.get('title')
category_id=request.POST.get('category')
tags=request.POST.get('tags')
sumary=request.POST.get('sumary')
content=request.POST.get('content')
user=request.user
#验证数据是否齐全
if not all([avatar,title,category_id,sumary,content]):
return HttpResponseBadRequest('参数不全')
#判断文章分类id数据是否正确
try:
article_category=ArticleCategory.objects.get(id=category_id)
except ArticleCategory.DoesNotExist:
return HttpResponseBadRequest('没有此分类信息')
#保存到数据库
try:
article=Article.objects.create(
author=user,
avatar=avatar,
category=article_category,
tags=tags,
title=title,
sumary=sumary,
content=content
)
except Exception as e:
logger.error(e)
return HttpResponseBadRequest('发布失败,请稍后再试')
#返回响应,跳转到文章详情页面
#暂时先跳转到首页
return redirect(reverse('home:index'))