Всем доброго времени суток, я совсем новичок в теме программирования и использования баз данных.Хотя я пытался решить проблему, но сам смотрю в форумах и с документацией драйверов.Поэтому я пытаюсь создать асинхронное приложение / веб-сайт, где данные, которые я сохраняю в базе данных (Rethinkdb), могут также отображаться на веб-сайте (для этого я использую торнадо).Дело в том, что данные меняются с течением времени, поэтому веб-сайт должен обновляться АВТОМАТИЧЕСКИ каждую секунду / миллисекунду / что угодно (как приложение в реальном времени), таким образом, можно было бы увидеть все данные на веб-сайте.Идея состоит не в том, чтобы каждый раз менять порт или кликать каждый раз в обновлении веб-сайта.Следующий код, который я реализую, и ошибки, которые я получаю, потом.
import rethinkdb as r
from tornado import ioloop, gen
from tornado.concurrent import Future, chain_future
import functools
import tornado.web
@gen.coroutine
def single_row(connection):
# Wait for the connection to be ready
connection = yield connection_future
# Insert some data
yield r.db('test').table('test2').insert([{"id": 4}, {"id": 4}, {"id": 5},{"id": 6}]).run(connection)
# Print the first row in the table
row = yield r.db('test').table('test2').get(0).run(connection)
yield row
def print_feed(connection_future):
connection = yield connection_future
feed = yield r.db('test').table('table4').changes().run(connection)
#while (yield feed.fetch_next()):
while (yield feed.fetch_next()):
item = yield feed.next()
myMessage.NewSentence(number=item)
def make_app():
return tornado.web.Application([(r"/", MainHandler),])
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write(myMessage.message)
class MyMessage():
def __init__(self):
self.message = "Hello world, the number is: 16"
def NewSentence(self, number):
self.message = "Hello world, the number is: " + str(number)
if __name__ == "__main__":
r.set_loop_type("tornado")
connection = r.connect(host='localhost', port=28015)
myMessage = MyMessage()
print_feed(connection)
#myMessage.NewSentence(35)
app = make_app()
app.listen(8888)
ioloop.IOLoop.current().add_callback(print_feed(), connection)
Теперь ошибка:
runfile('/home/advaptive-balancing/Documents/um/rethinkdb/dasbeste.py', wdir='/home/advaptive-balancing/Documents/um/rethinkdb')
Reloaded modules: __mp_main__
Traceback (most recent call last):
File "<ipython-input-2-a45fa54bbd25>", line 1, in <module>
runfile('/home/advaptive-balancing/Documents/um/rethinkdb/dasbeste.py', wdir='/home/advaptive-balancing/Documents/um/rethinkdb')
File "/home/advaptive-balancing/anaconda3/lib/python3.7/site-packages/spyder_kernels/customize/spydercustomize.py", line 668, in runfile
execfile(filename, namespace)
File "/home/advaptive-balancing/anaconda3/lib/python3.7/site-packages/spyder_kernels/customize/spydercustomize.py", line 108, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "/home/advaptive-balancing/Documents/um/rethinkdb/dasbeste.py", line 57, in <module>
app.listen(8888)
File "/home/advaptive-balancing/anaconda3/lib/python3.7/site-packages/tornado/web.py", line 1944, in listen
server.listen(port, address)
File "/home/advaptive-balancing/anaconda3/lib/python3.7/site-packages/tornado/tcpserver.py", line 142, in listen
sockets = bind_sockets(port, address=address)
File "/home/advaptive-balancing/anaconda3/lib/python3.7/site-packages/tornado/netutil.py", line 197, in bind_sockets
sock.bind(sockaddr)
OSError: [Errno 98] Address already in use
Большое спасибо за вашу помощь, это было быздорово, если кто-нибудь сможет мне помочь.С уважением, Уриэль