2016-12-09 3 views
1

Я написал код Python (в Google App Engine), который перенаправляет пользователей с моего сервера, позволяет пользователям входить в систему и предоставлять доступ к их учетной записи Twitter через OAUTH, а затем перенаправляться обратно на мой сервер (http://www.website.com). Мой код для этого отлично работает.В Python, как перенаправить пользователей на внешний сервер с параметрами?

Весь мой код Python работает на первом сервере (http: /www.website.com). Тем не менее, я тогда хочу перенаправить пользователя на третий сервер (http://www.example.com) с параметрами. Я попытался следующие:

import flask 

var1 = 'abcdef12345' #For simplicity, these are hard coded 
var2 = 'def4321' #However, in the real script they're dynamically created 
var3 = 'qwerty98765' 

THIRD_SERVER_URL = "http://www.example.com/entrance" 
return flask.redirect(url_try(THIRD_SERVER_URL, _external=True, x1=var1, x2=var2, x3=var3)) 

Я надеялся, что код будет перенаправлять пользователя на "http://www.example.com/entrance?x1=abcdef12345&x2=def4321&x3=qwerty98765". Тем не менее, я вместо этого получаю ошибку 500 Internal Server

Я также попытался:

import webapp2 

return self.redirect(THIRD_SERVER_URL + "?x1=" + var1 + "&x2=" + var2 + "&x3=" + var3) 

Однако, что не удалось тоже с той же ошибки 500.

Кто-нибудь знает, что может быть лучший вариант в Python для перенаправления (перенаправления?) пользователей на внешний URL с параметрами?

ответ

1

Что говорит журнал ошибок трассировки стека о 500?

Переадресация фляк принимает только код URL и код ответа (302 и т. Д.). (Где находится url_try?) Вы должны быть в состоянии:

from flask import redirect 
... 
... 
return redirect(THIRD_SERVER_URL + "?x1=" + var1 + "&x2=" + var2 + "&x3=" + var3, 302) 
+0

Замечательный :) Это сработало! Я не мог заставить Google App Engine делать «из переадресации импорта фляг». Вместо этого у меня просто была «фляжка импорта» и она использовала «return flask.direct и т. Д.». Спасибо, что указали путь! – SimonsSchus

+0

Re: подход, является ли это массово неуверенным методом передачи данных? Var1 и Var2 относятся к токенам Twitter. – SimonsSchus

Смежные вопросы