Django,处理来自外部服务器的响应

时间:2016-07-24 21:36:05

标签: json django httprequest httpresponse

问题是如何从外部服务器处理HttpResponce?

我的想法是将json数据发送到外部服务器

(例如搜索数据CallbackManager callbackManager; void askForFBPublishPerm(){ Log.d(TAG, "asking for the permissions"); callbackManager = CallbackManager.Factory.create(); LoginManager.getInstance().logInWithPublishPermissions( PreviewActivity.this, Arrays.asList("publish_actions")); LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() { @Override public void onSuccess(LoginResult loginResult) { postToFB(); } @Override public void onCancel() { Log.d(TAG, "cancelled while asking publish permission"); } @Override public void onError(FacebookException error) { Log.d(TAG, "error occurred while asking publish permission!"); } }); }

{'keyword': keyword, 'limit':limit, 'db':db}

之后我从服务器获得json数据的响应

response = requests.post(url, json = userupload, headers=headers)

它在屏幕上,但是你可以理解不是用户的好视图......

那么我怎样才能在适当的html表中添加这些数据呢? (最好的选择是我可以在同一页面上打印出来)

2 个答案:

答案 0 :(得分:2)

如果我理解正确,您希望将jSON格式的post请求的输出呈现为HTML文件。

为此,将json编码的对象从视图传递到模板:

<强> views.py:

import json

def myview(request):
    obj = requests.post(url, json = userupload, headers=headers)
    return render_to_response("template.html", {"obj_as_json": json.dumps(obj.json())})

<强> template.html:

<html>
    <head>
    <script type="text/javascript">
    var obj = {{ obj_as_json }};
    </script>
    </head>
    ...
</html>

答案 1 :(得分:1)

https://docs.djangoproject.com/en/1.9/intro/tutorial03/ 在django教程中,您将学习如何使用html和上下文数据呈现响应。

如果您使用requests,可以这样做:

// GET: RequestTypes/Create
public ActionResult Create() {        
    ViewBag.Team = new SelectList(db.Teams, "Id", "TeamDescription");
    var model = new RequestType();
    model.LastUpdated = System.DateTime.Now;
    model.Active = true;
    return View(model);
}

json api的一大优点是你可以用javascript异步访问它。如果你只是想在不调用数据库的情况下渲染响应来操纵json api中的数据,你应该查看它。