Необходима перезагрузка Flask Server, когда в БД внесены изменения - PullRequest
0 голосов
/ 18 марта 2019

Я использую Flask для создания веб-службы. Когда я делаю некоторые изменения в БД, мне нужно перезапустить флеш-сервер.

db = pymysql.connect("localhost","root","","posdata")
db1 = pymysql.connect("localhost","root","","posdata")

Кроме того, мне нужно создать два соединения с БД для работы некоторой функции. Если я использую только одно соединение (говорит дБ, как указано выше), я получаю

`InterfaceError (0, '')`

так, чтобы иметь дело с InterfaceError, я создал два соединения с БД. Но теперь проблема в том, что когда я делаю некоторые изменения в БД, БД работает нормально, но db1 не работает, мне нужно было перезапустить флеш-сервер, чтобы заставить работать соединение db1.

@app.route('/data_url/<customer_name>')
def data(customer_name):
    cursor = db.cursor()
    cursor.execute(" select country_name from countries as c, customers as cu where c.c_id = cu.c_id and cu.customer_id = '%s' " % customer_name)
    data =  cursor.fetchall()
    data = [x[0] for x in data]
    return jsonify(data)


**# query to select TYPE attribute from DB and send it to ajax**

@app.route('/url_for/<customer_name>')
def dt(customer_name):
    cursor = db1.cursor()
    cursor.execute(" select type from customers where customer_id = '%s' " % customer_name)
    data =  cursor.fetchall()
    data = [x[0] for x in data]
    return jsonify(data)

здесь, чтобы сделать @app.route ('/ url_for /') для работы, мне нужно перезапустить флеш-сервер.

Ошибка трассировки при использовании соединения с одной БД

Traceback (most recent call last):
  File "C:\Users\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 2309, in __call__
    return self.wsgi_app(environ, start_response)
  File "C:\Users\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 2295, in wsgi_app
    response = self.handle_exception(e)
  File "C:\Users\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 1741, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "C:\Users\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\_compat.py", line 35, in reraise
    raise value
  File "C:\Users\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 2292, in wsgi_app
    response = self.full_dispatch_request()
  File "C:\Users\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 1815, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "C:\Users\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 1718, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "C:\Users\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\_compat.py", line 35, in reraise
    raise value
  File "C:\Users\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 1813, in full_dispatch_request
    rv = self.dispatch_request()
  File "C:\Users\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 1799, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "C:\Users\OneDrive -\Desktop\Project\TestApp\app.py", line 34, in Request
    cursor.execute('select customer_id from customers')
  File "C:\Users\AppData\Local\Programs\Python\Python36\lib\site-packages\pymysql\cursors.py", line 170, in execute
    result = self._query(query)
  File "C:\Users\AppData\Local\Programs\Python\Python36\lib\site-packages\pymysql\cursors.py", line 328, in _query
    conn.query(q)
  File "C:\Users\AppData\Local\Programs\Python\Python36\lib\site-packages\pymysql\connections.py", line 516, in query
    self._execute_command(COMMAND.COM_QUERY, sql)
  File "C:\Users\AppData\Local\Programs\Python\Python36\lib\site-packages\pymysql\connections.py", line 750, in _execute_command
    raise err.InterfaceError("(0, '')")
pymysql.err.InterfaceError: (0, '')

Ответы [ 2 ]

0 голосов
/ 18 марта 2019

Да.Вам необходимо перезапускать ваш флеш-сервер каждый раз, когда вы вносите изменения в любой из исходных файлов.

0 голосов
/ 18 марта 2019

Вы изменили предыдущий код, но он не соответствует текущему Flask Server . Таким образом, ответ yes, чтобы отразить ваши новые изменения на сервере, вам необходимо перезапустить Flask Server

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...