Код: Выделить всё
@app.post("/login")
async def login(user: UserLogin):
connection = None
try:
connection = await get_db_connection()
except Exception as e:
logger.error(f"Connection error: {str(e)}")
raise HTTPException(status_code=500, detail=str(e))
try:
async with connection.cursor() as cursor:
sql = "SELECT * FROM login WHERE email = %s"
values = (user.email,)
await cursor.execute(sql, values)
data = await cursor.fetchone()
if data:
data_dict = dict(data)
if bcrypt.checkpw(user.password.encode('utf-8'), data_dict['password'].encode('utf-8')):
token = create_access_token(data={"sub": data_dict['email']})
return {
"id": data_dict['id'],
"name": data_dict['name'],
"email": data_dict['email'],
"token": token
}
else:
raise HTTPException(status_code=401, detail="Invalid credentials")
else:
raise HTTPException(status_code=401, detail="Invalid credentials")
except Exception as e:
logger.error(f"Login error: {str(e)}")
raise HTTPException(status_code=500, detail="An error occurred during login")
finally:
if connection:
await connection.close()
поднимите app_exc
Файл «C:\Users\Lirik\AppData\Local\Programs\Python\Python311\Lib\site-packages\starlette\middleware\base.py», строка 149 , в coro
await self.app(scope,recee_or_disconnect, send_no_error)
Файл "C:\Users\Lirik\AppData\Local\Programs\Python\Python311\Lib\site-packages\starlette\middleware \cors.py", строка 93, в call
await self.simple_response(scope, get, send, request_headers=headers)
Файл "C:\Users\Lirik\ AppData\Local\Programs\Python\Python311\Lib\site-packages\starlette\middleware\cors.py", строка 144, в simple_response
await self.app(scope, get, send)
Файл "C:\Users\Lirik\AppData\Local\Programs\Python\Python311\Lib\site-packages\starlette\middleware\Exceptions.py", строка 62, в call
await Wrap_app_handling_Exceptions(self.app, conn)(область, получение, отправка)
Файл "C:\Users\Lirik\AppData\Local\Programs\Python\Python311\Lib\site-packages\starlette_Exception_handler.py", строка 62, в обернутом_приложении
поднимите exc
Файл "C:\Users\Lirik\AppData\Local\Programs\Python\Python311\Lib\site-packages\starlette_Exception_handler.py", строка 51, в обернутом_приложенииожидание приложения (область, получение, отправитель)
Файл «C:\Users\Lirik\AppData\Local\Programs\Python\Python311\Lib\site-packages\starlette\routing.py», строка 715 , в вызове
ожидайте self.middleware_stack(область, получение, отправка)
Файл "C:\Users\Lirik\AppData\Local\Programs\Python\Python311\Lib\ site-packages\starlette\routing.py", строка 735, в приложении
ожидайте маршрут.handle(область, получение, отправка)
Файл "C:\Users\Lirik\AppData\Local\Programs\ Python\Python311\Lib\site-packages\starlette\routing.py", строка 288, в дескрипторе
await self.app(scope, get, send)
Файл "C:\Users\Lirik\ AppData\Local\Programs\Python\Python311\Lib\site-packages\starlette\routing.py", строка 76, в приложении
await Wrap_app_handling_Exceptions(app, request)(scope, get, send)
Файл "C:\Users\Lirik\AppData\Local\Programs\Python\Python311\Lib\site-packages\starlette_Exception_handler.py", строка 62, в обернутом_приложении
raise exc
Файл "C:\ Users\Lirik\AppData\Local\Programs\Python\Python311\Lib\site-packages\starlette_Exception_handler.py", строка 51, в обернутом_приложении
ожидание приложения (область действия, получение, отправитель)
Файл "C" :\Users\Lirik\AppData\Local\Programs\Python\Python311\Lib\site-packages\starlette\routing.py", строка 73, в приложении
response = await f(request)
^ ^^^^^^^^^^^^^^^
Файл "C:\Users\Lirik\AppData\Local\Programs\Python\Python311\Lib\site-packages\fastapi\routing.py" , строка 301, в приложении
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^
Файл «C:\Users\Lirik\AppData\Local\Programs\Python\Python311\Lib\site-packages\fastapi\routing.py», строка 212, в run_endpoint_function
return awaitdependent.call(** значения)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Файл "c:\Users\Lirik\Videos \Newfolder\backend\server.py", строка 210, в логине
await Connection.close()
TypeError: объект NoneType нельзя использовать в выражении 'await'
как это исправить?
Я попробовал добавить cors, но ничего не помогло.
Подробнее здесь: https://stackoverflow.com/questions/790 ... o-fix-this