Django - 将表单数据转换为REST API,POST请求

时间:2017-12-28 18:21:08

标签: django forms rest

给定一个任意的html表单,将输入的数据转换为REST API JSON POST请求到任意地址的最快和最顺畅的方法是什么?

Django中有没有好的库?

由于

1 个答案:

答案 0 :(得分:1)

最简单的方法是使用requests

例如登录的代码示例为:

import requests

def user_login(request):
   # If token was already acquired, redirect to home page
   if request.session.get('api_token', False):
        return HttpResponseRedirect(reverse('index'))

   # Get username and password from posted data, authenticate and
   # if successful save api token to session
   if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')
        r = requests.post('http://localhost/api-token-auth/', data={'username': username, 'password': password})
        if r.status_code == 200:
            response = r.json()
            token = response['token']
            # Save token to session
            request.session['api_token'] = token
        else:
            messages.error(request, 'Authentication failed')
            return HttpResponseRedirect(reverse('login'))
    else:
        return render(request, 'login.html', {})

这只是一个简单的例子。关键是这一部分:

r = requests.post('http://localhost/api-token-auth/', data={'username': username, 'password': password})