2017-07-11 13 views
0

私は、リンクをクリックすると、リンクをクリックしてから、ちょうど残ったページに戻る小さなフラスコのアプリケーションがあります。フラスコはページにリダイレクトしてから戻ってくる

リンクは物理デバイスの再起動ページに移動するためです。私はこれらのデバイスの多くを持っていて、それらのスクリプトを実行して再起動し、開始ページに戻りたいと思っています。

私はリンクにアクセスすることができますが、ユニットはリセットされますが、現在は外部ページに戻っていません。何か案は?私は、次のしている@xyresへ

EDIT

ありがとう:

from flask import Flask, render_template, redirect, url_for, request 
import urllib 

app = Flask(__name__) 


@app.route('/') 
def index(): 
    return render_template('index.html') 


@app.route('/reboot') 
def reboot(): 
    link = request.args.get('link') 
    if link: 
     urllib.request.urlopen(link) 
    return redirect(request.referrer or url_for('index')) 

if __name__ == '__main__': 
    app.run(debug=True) 

が、それはページをヒットし、

答えて

1

あなたのバックエンドからの外部リンクへの要求を行うことができます。クライアントに実際のリンクを与える代わりに、あなたが制御する代替リンクを提供します。たとえば:

http://yourapp.com/make-request?link=http://actual-link.com 

だから、あなたは、このための/make-request/のURLのハンドラを作成します。

from flask import request, redirect, url_for 
import urllib 

@app.route('/make-request') 
def make_request() 
    link = request.args.get('link') 
    if link: 
     urllib.urlopen(link) # for Python 3.x use urllib.request.urlopen 

    # now redirect back to the referrer 
    # if no referrer, redirect to some_view 
    return redirect(request.referrer or url_for('some_view')) 
+0

ちょうど私は明確です、あなたは私が行きたいリンクを入れてほしく、urlopenの後の言葉ではありませんか? –

+0

@cmrussellそうです。それはタイプミスでした。ごめんなさい。 – xyres

1
...ので、ユニットのdoesntの再起動をリダイレクトする前に十分な長待つdoesntの

ブラウザが別のページに移動すると、ブラウザをリダイレクトしたサーバはブラウザの制御を失います。それについて考えてみましょう:あなたはそのページを離れた後でもあなたのブラウザを制御し続けることができるインターネット上のウェブページに行きたいですか?

ただし、従来のリンクではなくiframeを使用していると考えられます。ここでは、ボタンをクリックしたときにiframeにWikipediaを読み込んだWebページの例を示します。

$(document).ready(function() { 
 
    $('#btn-go').click(function() { 
 
     $('#ifr-loader').show(); 
 
     $('#ifr-loader').attr('src', 'https://www.wikipedia.org'); 
 
    }); 
 
    $('#btn-finish').click(function() { 
 
     $('#ifr-loader').attr('src', ''); 
 
     $('#ifr-loader').hide(); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id="btn-go">Go to Other Site</button> 
 
<button id="btn-finish">Finish</button> 
 

 
<hr> 
 
<iframe id="ifr-loader" style="display: none; width: 100%; height: 80%"></iframe>

+0

もう一度他のページに当たったら、もはやコントロールができなくなりました。ユニットを再起動できるだけの長さであれば十分です(私は約125台あります)。 –

関連する問題