我有一些腳本在常規py文件來檢查連接或不在所需的URL。Flask用什麼API檢查某個遠程(其他)服務器的連接?
import urllib2
import time
global xUrl
Url = 'http://stackoverflow.com/'
def checkNetwork():
try:
response=urllib2.urlopen(Url,timeout=1)
return True
except urllib2.URLError as err: pass
return False
while 1:
if checkNetwork() == 1:
print "Connected to", Url
else:
print "Cannot Connected to", Url
time.sleep(5)
pass
對於瓶中實現,我也試試這個:
@app.route('/status/')
@auth.login_required
def checkNetwork():
user = auth.get_logged_in_user()
optiondetails = Optionplatform.select().where(Optionplatform.user==user.id)
xUrl = Optionplatform.remoteserver #i edited the posted questions.
try:
response = urllib2.urlopen(xUrl,timeout=1)
status = "Connected to " + xUrl
return render_template('checkNetwork.html', status)
except urllib2.URLError as err:
status = "NOT Connected to " + xUrl
return render_template('checkNetwork.html', status)
return render_template('checkNetwork.html')
和模板,
<html>
<head> </head>
<body>
{% block content_details %}
<p>{{ status }} </p>
{% endblock %}
</body>
</html>
但得到這個錯誤: 問題是,如何在實現燒瓶 ?應該使用Flask中的哪些API?而不是urllib32打開一些URI並檢查,連接或不連接到遠程服務器。
感謝您的任何建議。
編輯答案按/米格爾評論: 這裏的模型。
class Optionplatform(db.Model):
user = ForeignKeyField(User, related_name='user_option')
remoteserver = TextField()
token = TextField()
並根據@miguel建議,之前我寫就像@miguel說:
xUrl = optiondetails.remoteserver
但後來occure指示的錯誤消息,療法是在models.py沒有 「REMOTESERVER」。這裏的錯誤消息「AttributeError:'SelectQuery'對象沒有屬性'remoteserver'」。
所以我改爲:
xUrl = Optionplatform.remoteserver
和錯誤消息是在第一印象。
很抱歉,但我有一個非常很難理解你正在嘗試做的事情。看起來好像您認爲Flask被用作Web客戶端(也就是說,您使用Flask將計算機連接到像StackOverflow這樣的網站)。它實際上是相反的:Flask意思是允許你接受連接:它可以用來創建一個像StackOverflow這樣的網站。 –
不是那種方式。這是我的一個小實驗,它可以與其他Web服務(比如說用容器構建)或者其他框架(與其他框架一起構建)進行通信的小型物聯網(機器到機器)。 Fyi,我從這個想法(http://flask.pocoo.org/snippets/73/)中獲得啓發,並嘗試理解它,首先用上面的腳本進行一些測試。無論如何,謝謝馬克,您的評論。這有助於我理解這個頁面(http://flask.pocoo.org/docs/deploying/others/)。 – hepidad