Django:通过视图而不是Postman调用RESTAPI

Django:通过视图而不是Postman调用RESTAPI,django,Django,我的桌面上有一个可以正常工作的python代码,可以完美地打印和制作PDF。我所要做的就是使用该代码并使用Django允许用户输入一个值 我的代码使用docusignAPI调用数据。我使用postman,它需要一个键和其他参数来使用API。我的用户输入的值将决定他们获得的数据 我想我要做的是重写我的代码,把它放在某个地方,然后把它变成一个视图。视图将被发送到模板 编辑- 我的代码: # Get Envelope Data- use account ID from above # Get Toda

我的桌面上有一个可以正常工作的python代码,可以完美地打印和制作PDF。我所要做的就是使用该代码并使用Django允许用户输入一个值

我的代码使用
docusign
API调用数据。我使用
postman
,它需要一个键和其他参数来使用API。我的用户输入的值将决定他们获得的数据

我想我要做的是重写我的代码,把它放在某个地方,然后把它变成一个视图。视图将被发送到模板

编辑-

我的代码:

# Get Envelope Data- use account ID from above
# Get Todays Date, Daily Setting
day = datetime.datetime.today().strftime('%Y-%m-%d')

url = "https://demo.docusign.net/restapi/v2/accounts/" + accountId + "/envelopes"
# if Envelope is completed
querystring = {"from_date": Date, "status": "completed"}


headers = {
    'X-DocuSign-Authentication': "{\"Username\":\""+ email +"\",\"Password\":\""+Password+"\",\"IntegratorKey\": \""+IntegratorKey+"\"}",
    'Content-Type': "application/json",
    'Cache-Control': "no-cache",
    'Postman-Token': "e53ceaba-512d-467b-9f95-1b89f6f65211"
}

response = requests.request("GET", url, headers=headers, params=querystring)
envelopes = response.text
对不起,让我再试一次。目前我的桌面上有一个
python3
程序。我用
空闲运行它,一切都是我想要的

我想用Django做的是使用此代码在网页上打印其输出,并让用户下载其附加的
csv
文件输出。我已经成功地创建了一个Django本地主机,我被困在了这一点上。我不知道如何使用我的
python3
代码运行到网页


代码由API调用组成,我使用postman来帮助我发送正确的参数。我将添加代码的图片。我只想让用户输入值,例如
accountID
,这样API就可以完成请求并为他们自己的请求提供数据。

我将尝试向您概述如何使用Django

您可以有一个帐户来获取用户
帐户\u id

class AccountForm(forms.Form):
    account_id = forms.IntegerField()
您可以通过泛型显示此表单(另请参见):

我没有在这里显示模板
account.html
。你必须自己去弄清楚这一点;我提供的链接应该为您指明正确的方向

现在,尚待确定的是方法
form\u valid
应该返回什么。我展示的代码在上下文中呈现一个带有API调用响应的模板,因此在模板
result.html
中,您可以以任何方式显示结果数据


您还提到下载CSV文件。这可能是一个不同的视图,可能是由
result.html

中的链接或按钮触发的。你必须更具体地回答问题才能寻求帮助。对不起,我编辑了我的帖子,idk为什么我的示例代码中的日期很大,但这并不重要。非常感谢你编辑我的问题并回答。你所做的足以让我走向正确的方向。我已经阅读了链接,但我需要再重新阅读几次才能完全理解它。我的代码还使用json.loads和json.dumps来解析响应。你建议把它放在“ctx”部分之前吗。我还看到有人在settings.py中隐藏了api的键。你会这样做吗?@B.D将你的URL(
demo.docusign.net
)和api键放在
settings.py
中是一种很好的做法,将所有配置放在一个地方,以防你在某个时候不得不修改/更新这些键。这还允许您在多个视图中使用键,而无需写两次。@B.D是的,最好在视图中使用
'result':json.load(resp.text)
,以便将dict传递到模板
result.html
。这使你在模板中变得更容易。谢谢你,我会尝试一下,希望能很快让它工作起来。我有很多东西要学
class AccountView(views.FormView):
    form_class = AccountForm
    template_name = 'account.html'

    def form_valid(self, form):
        # here you make your request to the external API
        account_id = form.cleaned_data['account_id']
        url = "https://demo.docusign.net/restapi/v2/accounts/" + account_id + "/envelopes"
        headers = ...
        querystring = ...
        resp = requests.request("GET", url, headers=headers, params=querystring)

        ctx = {
            'result': resp.text,
        }
        return render(self.request, 'result.html', ctx)