2017-05-03 3 views
0

Hier ist, wie Tornado mit MySQL arbeitet:
Tornado mysql: wie Größe des Cursors bekommen

from __future__ import print_function 
from tornado import ioloop, gen 
import tornado_mysql 


@gen.coroutine 
def f(): 
    conn = yield tornado_mysql.connect(host='127.0.0.1', port=3306, user='user', passwd='passwd', db='mydb') 
    cur = conn.cursor() 
    yield cur.execute(query) 
    cur.close() 
    conn.close() 
    return cur 

query = "select id from tablename" 
for row in ioloop.IOLoop.current().run_sync(f): 
    print(row) 

Wenn print(row) Nullzeit ausführt, bedeutet dies, dass select id from tablename nichts bekam.

Ich will nur wissen, wie die Größe von ioloop.IOLoop.current().run_sync(f) sofort zu bekommen (so etwas wie ioloop.IOLoop.current().run_sync(f).size == 0), so dass ich, ob einige SQL-Abfrage muss etwas bestimmen kann oder nicht.

Antwort

0

Es ist nicht immer möglich, über eine Python-Sequenz mehr als einmal zu iterieren oder zu wissen, wie viele Dinge sich in einer Sequenz befinden, ohne darüber zu iterieren. Um sicherzugehen, müssen Sie das Ergebnis in eine Liste kopieren:

lst = list(IOLoop.current().run_sync(f)) 
if lst: 
    for row in lst: 
     print(row) 
Verwandte Themen