day63

开放对外访问的接口

1、在配置文件中添加字段

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

2、在页面中注册一个新的用户并上传图片,上传后会在django目录下新建一个文件夹media/static/img/ ,并将上传的文件保存在新建的文件夹下

3、在url.py中添加路由,在网页上输入http://127.0.0.1:8000/media/static/img/图片名,可以访问到存放在文件夹media/static/img/中存放的图片数据

  1)导入

    from django.views.static import serve

    from 项目名 import settings

  2) 添加路由

    url(r'^media/'(?P<path>.*), serve, {'document_root': settings.MEDIA_ROOT}),

 

view.py

"""点赞点踩功能"""
from django.db.models import F
import json

def up_or_down(request):
"""

1. 必须登录
2. 不能点自己的文章
3. 只能点一次
:param request:
:return:
"""
if request.is_ajax():
back_dic = {'code': 200, 'msg': ''}
is_up = request.POST.get('is_up') # str
is_up = json.loads(is_up)
article_id = request.POST.get('article_id')
if not request.session.get('username'):
back_dic['code'] = 1008
back_dic['msg'] = '<a href="/login/" style="color: red;">请先登录</a>'
return JsonResponse(back_dic)

article = models.Article.objects.filter(pk=article_id).first()
username = article.site.userinfo.username

if request.session.get('username') == username:
back_dic['code'] = 1009
back_dic['msg'] = '不能点击自己的文章'
return JsonResponse(back_dic)

user_id = article.site.userinfo.pk
# 验证是否点击过
is_click = models.UpandDown.objects.filter(user_id=user_id, article_id=article_id).first()
if is_click:
back_dic['code'] = 1010
back_dic['msg'] = '你已经点过了'
return JsonResponse(back_dic)
print(is_up)
# 入库
# 1. 操作文章表
if is_up:
models.Article.objects.filter(pk=article_id).update(up_num=F('up_num') + 1)
back_dic['msg'] = '谢谢支持'
else:
models.Article.objects.filter(pk=article_id).update(down_num=F('down_num') + 1)
back_dic['msg'] = '我继续加油'
# 2. 操作upanddown
models.UpandDown.objects.create(user_id=user_id, article_id=article_id, is_up=is_up)
return JsonResponse(back_dic)

 

posted @ 2021-08-27 21:41  Gnomeshghy  阅读(31)  评论(0)    收藏  举报