Обновление Postgresql БД с API в Flask - PullRequest
0 голосов
/ 28 февраля 2020

Мне нужно разработать API для обновления строк в моей Postgresql БД. Использование API было бы безопаснее, я собираюсь визуализировать html непосредственно из API, а не из БД.

Мой код API выглядит следующим образом:

def connect_to_db():
try:
    global connection
    global cursor
    connection = psycopg2.connect(user = "*****",
                                    password = "****",
                                    host = "****",
                                    port = ****,
                                    database = "****")

    cursor = connection.cursor()

    print(" CONNEXION OK ")

  except (Exception, psycopg2.Error) as error :
      print ("Error while connecting to PostgreSQL", error)
  except (NameError) as nameError :
      print("NameError", file=sys.stdout)


def close_db_connect():
#closing database connection.
  if(connection):
    cursor.close()
    connection.close()
    print("PostgreSQL connection is closed")


def requete(schema, table_name, where_clause, new_value):
  req = "UPDATE "+schema+"."+table_name+" SET ville = '"+new_value+"' WHERE id = '"+where_clause+"';"
  print(req)
  sql_select_after_update = "Select * From "+schema+"."+table_name+";"
  print(sql_select_after_update)

  dat = sqlio.read_sql_query(sql_select_after_update, connection)
  dat_json = dat.to_json()
  print(dat_json)

  return dat_json



@app.route('/', methods=("POST","GET","PUT))
def update():
  if request.method == 'PUT':
    connect_to_db()
    requete('public', 'testeditapi', 'hello', 'Paris')

    #close DB connexion
    close_db_connect()

    return'''<h1>UPDATE<h1>'''

Я не не знаю, является ли это хорошим способом кодирования API, более того, мне нужно в другом Flask классе для редактирования строки, используя requests.put, и я получаю эту ошибку:

TypeError : Функция просмотра не вернула правильный ответ. Функция либо вернула None, либо завершилась без оператора return.

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