from flask import Flask
from flask import request
import threading
import time
from pymongo import MongoClient
import gridfs
bridgeVideoDatabase = MongoClient().bridgeVideoDatabase
fs = gridfs.GridFS(bridgeVideoDatabase)
app = Flask(__name__)
host = '10.0.0.23'
port = 8080
client = MongoClient('mongodb://localhost:27017/')
db = client.bridgeUserInformationTable
@app.route('/sendUserStringIntData',methods=['GET', 'POST'])
def getDataFromAndroid():
print "Entire Data:",request.form
UserName = request.form['UserName']
print UserName
#insertion
db.bridgeUsersInfo.insert({"UserName":UserName})
#display in console
cursor = db.bridgeUsersInfo.find()
for document in cursor:
print(document)
Thread1 = threading.Thread(target=getDataFromAndroid)
t=time.time()
Thread1.start()
Thread1.join()
print'Total time for execution :',time.time()-t,'msec'
return "User Info Saved successfully in Database :-)"
if __name__ == '__main__':
app.run(
host=host, port=port
)
Oben ist das Skript zum Messen der Zeit zum Speichern von Daten in der Datenbank mit Python und Eingabe von andoid aktualisiert. Während das gleiche läuft es bewirtet, aber Text nach dem Speichern es Fehler geben unterMesszeit der Ausführung mit Multi-Thread in Python
* Running on http://10.0.0.23:8080/ (Press CTRL+C to quit)
[2016-11-11 11:52:22,136] ERROR in app: Exception on /sendUserStringIntData [POST]
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1988, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1641, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1544, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1639, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1625, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
TypeError: getDataFromAndroid() takes exactly 1 argument (0 given)
10.0.0.27 - - [11/Nov/2016 11:52:22] "POST /sendUserStringIntData HTTP/1.1" 500
Wie es gelöst werden sollte?
* Running on http://10.0.0.23:8080/ (Press CTRL+C to quit)
Entire Data: ImmutableMultiDict([('UserName', u'mahaveer'), ('Age', u'0'), ('Password', u'null')])
mahaveer
{u'UserName': u'mahaveer', u'Age': u'24', u'_id': ObjectId('5825950e0f325f3a30ef7292'), u'Password': u'12345'}
{u'UserName': u'mahaveer', u'_id': ObjectId('582595530f325f3a563681c7')}
Entire Data:Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 763, in run
self.__target(*self.__args, **self.__kwargs)
File "/home/cosmitude10/neon/measureMultithread/test.py", line 22, in getDataFromAndroid
print "Entire Data:",request.form
File "/usr/local/lib/python2.7/dist-packages/werkzeug/local.py", line 343, in __getattr__
return getattr(self._get_current_object(), name)
File "/usr/local/lib/python2.7/dist-packages/werkzeug/local.py", line 302, in _get_current_object
return self.__local()
File "/usr/local/lib/python2.7/dist-packages/flask/globals.py", line 37, in _lookup_req_object
raise RuntimeError(_request_ctx_err_msg)
RuntimeError: Working outside of request context.
This typically means that you attempted to use functionality that needed
an active HTTP request. Consult the documentation on testing for
information about how to avoid this problem.
Total time for execution : 0.00076699256897 msec
10.0.0.27 - - [11/Nov/2016 15:24:27] "POST /sendUserStringIntData HTTP/1.1" 200 -
Der Fehler sieht nicht genannt, wie es auf Zeitdauer Check passiert –
ich nicht bekommen, was genau dieser Fehler bedeuten, ich bin Neu bei Python – mad
Ändern Sie Ihre Position Timing-Prozess unter Kolben Handler. Dein Handler ist unbenannt! Therad hilft dir nicht, wenn du rufst, nachdem du alles getan hast! – dsgdfg