Django获取 请求方式/ 请求路径/ 一个或多个文件/

场景:

         前端: postman接口上传文件

         后台:  django框架,接收文件

def get_other_params(request):

    """
    获取其他参数:  method/path/file
    :param request:
    :return:
    """

    ret_method = request.method
    ret_url = request.get_full_path()

    # 单个文件
    ret_file = request.FILES.get("测试文件")
    # 多个文件
    ret_files = request.FILES.getlist("多个测试文件")

    # 如果不指定路径文件是和manage.py同级的,
    # TODO 这里为什么没吃到settings.py中的os.path.join??????
    # file_path = os.path.join("django_note\\apps\\users", ret_file.name)

    # 保存单个文件
    with open('%s' % ret_file.name, 'wb') as f:
        for i in ret_file.chunks():
            f.write(i)

    # 保存多个文件
    for file in ret_files:
        with open('%s' % file.name, 'wb') as f:
            for i in file.chunks():
                f.write(i)

    print("请求路径为: %s, 请求方法为:%s" % (ret_url, ret_method))
    return HttpResponse("ok")

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django 中,可以在一个视图类(View)中定义多个 GET 请求方法,每个方法对应不同的路径和参数。例如: ```python from django.views import View from django.http import HttpResponse class BookView(View): def get(self, request): # 处理 /books/ 请求 books = Book.objects.all() return HttpResponse(books) def get_book_by_id(self, request, book_id): # 处理 /books/<book_id>/ 请求 book = Book.objects.get(id=book_id) return HttpResponse(book) def get_books_by_author(self, request, author_name): # 处理 /books/author/<author_name>/ 请求 books = Book.objects.filter(author=author_name) return HttpResponse(books) ``` 在上面的代码中,我们定义了三个不同的 GET 请求方法,分别处理 `/books/`、`/books/<book_id>/` 和 `/books/author/<author_name>/` 这三个路径请求。每个方法都接受一个 `request` 参数,用于获取请求中的参数和数据。第二个和第三个方法还接受一个额外的参数,用于获取 URL 中的参数。最后,每个方法都返回一个 HttpResponse 对象,用于返回响应数据。 要在视图函数中使用这些方法,可以根据请求路径和参数选择调用不同的方法。例如: ```python def book_handler(request): if request.path == '/books/': return BookView.as_view()(request) elif '/books/' in request.path: book_id = request.path.split('/')[-2] return BookView.as_view().get_book_by_id(request, book_id) elif '/books/author/' in request.path: author_name = request.path.split('/')[-2] return BookView.as_view().get_books_by_author(request, author_name) else: return HttpResponseNotFound() ``` 在上面的代码中,我们定义了一个视图函数 `book_handler`,用于处理所有 `/books/` 开头的请求。根据请求路径中的参数,选择调用 `BookView` 中的不同方法,并返回相应的响应数据。如果请求路径不存在,返回 404 错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值