后端接口实现
接口设计
- URL:/user/news_release
- 请求方式:POST
- 传入参数:JSON格式
- 参数
参数名 |
类型 |
是否必须 |
参数说明 |
title |
string |
是 |
新闻标题 |
category_id |
int |
是 |
新闻分类_id |
digest |
string |
是 |
新闻摘要 |
index_image |
file |
是 |
索引图片 |
content |
string |
是 |
新闻内容 |
参数名 |
类型 |
是否必须 |
参数说明 |
errno |
int |
是 |
错误码 |
errmsg |
string |
是 |
错误信息 |
代码实现
- 在
profile/views.py
文件中将 news_release
添加请求方式 POST
为发布新闻添加逻辑
@profile_blu.route('/news_release', methods=["GET", "POST"])
@user_login_data
def news_release():
if request.method == "GET":
...
return render_template('news/user_news_release.html', data={"categories": categories_dicts})
title = request.form.get("title")
source = "个人发布"
digest = request.form.get("digest")
content = request.form.get("content")
index_image = request.files.get("index_image")
category_id = request.form.get("category_id")
if not all([title, source, digest, content, index_image, category_id]):
return jsonify(errno=RET.PARAMERR, errmsg="参数有误")
try:
index_image = index_image.read()
except Exception as e:
current_app.logger.error(e)
return jsonify(errno=RET.PARAMERR, errmsg="参数有误")
try:
key = storage(index_image)
except Exception as e:
current_app.logger.error(e)
return jsonify(errno=RET.THIRDERR, errmsg="上传图片错误")
news = News()
news.title = title
news.digest = digest
news.source = source
news.content = content
news.index_image_url = constants.QINIU_DOMIN_PREFIX + key
news.category_id = category_id
news.user_id = g.user.id
news.status = 1
try:
db.session.add(news)
db.session.commit()
except Exception as e:
current_app.logger.error(e)
db.session.rollback()
return jsonify(errno=RET.DBERR, errmsg="保存数据失败")
return jsonify(errno=RET.OK, errmsg="发布成功,等待审核")