сайт не актуализируется с rethinkdb и торнадо - PullRequest
0 голосов
/ 03 декабря 2018

Всем доброго времени суток, я совсем новичок в теме программирования и использования баз данных.Хотя я пытался решить проблему, но сам смотрю в форумах и с документацией драйверов.Поэтому я пытаюсь создать асинхронное приложение / веб-сайт, где данные, которые я сохраняю в базе данных (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

Большое спасибо за вашу помощь, это было быздорово, если кто-нибудь сможет мне помочь.С уважением, Уриэль

...