2014-09-01 74 views
3

我想開發一個使用瓶和請求模塊的小小應用程序。我試圖將一些數據發佈到燒瓶Web應用程序。但我堅持這個錯誤。如何使用請求模塊將數據發佈到燒瓶應用程序?

flask.py

@app.route('/add/', methods=['POST']) 
def add_paths(): 
    paths = request.form['paths'] 
    tags = 'others' 
    for path in paths: 
     g.db.execute('insert into entries (path, tags) values(?, ?)', 
      [path, tags]) 
     g.db.commit() 
    message = 'New paths are posted' 
    return jsonify(result = message) 

命令行文件發佈的數據

import json 
import glob2 
import requests 

list = glob2.glob('/home/sheeshmohsin/*/**') 
post_data = {'paths' : list } 
headers = {'content-type': 'application/json'} 
post_response = requests.post(url='http://localhost:9696/add/', data=json.dumps(post_data), headers=headers) 
print post_response 
print post_response.text 

,我得到的錯誤是: -

File "commandline.py", line 8, in <module> 
    post_response = requests.post(url='http://127.0.0.1:9696/add/', data=json.dumps(post_data), headers=headers) 
File "/usr/lib/python2.7/site-packages/requests/api.py", line 88, in post 
    return request('post', url, data=data, **kwargs) 
File "/usr/lib/python2.7/site-packages/requests/api.py", line 44, in request 
    return session.request(method=method, url=url, **kwargs) 
File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 335, in request 
    resp = self.send(prep, **send_kwargs) 
File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 438, in send 
    r = adapter.send(request, **kwargs) 
File "/usr/lib/python2.7/site-packages/requests/adapters.py", line 327, in send 
    raise ConnectionError(e) 
requests.exceptions.ConnectionError: HTTPConnectionPool(host='127.0.0.1', port=9696): Max retries exceeded with url: /add/ (Caused by <class 'socket.error'>: [Errno 111] Connection refused) 
+0

你確定你的'flask.py'正在監聽端口9696嗎?你有'app.run(port = 9696)'這樣的東西,它說'*運行在http://127.0.0.1:9696 /'上? – metatoaster 2014-09-02 00:12:40

+0

是的,我已經做到了。 – 2014-09-02 00:16:16

+0

這是flask.py的鏈接,你可以看看這個文件。 http://ur1.ca/i3otg – 2014-09-02 00:18:42

回答

0

連接拒絕錯誤信息表明它可能是您的防火牆或回送:

  • 檢查防火牆沒有阻止端口9696
  • 我已經回送(127.0.0.1)引起類似的問題,所以通過實際的IP地址替換localhost這樣Python不使用loopback接口( requests.post(url='http://localhost:9696/add/',...)。您可能需要對Flask(app..run(host='192.168...', port=9696))進行相同操作。