Skip to content

A simple Flask based server application that provides access to database with registration and authentication functionality

Notifications You must be signed in to change notification settings

Jasoshin/flask-database-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Серверное приложение на Python (Flask + PostgreSQL)

Подготовка

В config.py заполните учётные данные для доступа к вашей базе данных:

host = 'iP-адрес базы данных'
user = 'Ваше имя пользователя для доступа к базе данных'
password = 'Ваш пароль для доступа к базе данных '
db_name = 'Имя вашей базы данных'

Установите необходимые библиотеки для запуска:

pip install -r requirements.txt

Установите необходимые для корректной работы приложения СУБД PostgreSQL и Postman(опционально, для тестирования API), либо любую другую API-платформу

Запуск

python main.py

Usage

Учётные данные, которые принимает сервер:

  • username: имя пользователя, которое будет использоваться при регистрации.
  • password: пароль для учетной записи пользователя.
  • email: адрес электронной почты пользователя.

Важное замечание при создании пароля: должен иметь длину от 8 до 16 символов и содержать хотя бы одну цифру, одну строчную букву, одну прописную букву и один специальный символ, также не должен содержать пробелов. В противном случае - пароль не будет являться валидным для сервера и вернёт ошибку.

Приложение позволяет использовать следующие API-вызовы:

Вводные данные
для вызова
Выходные данные
при успешном ответе
Выходные данные
при ошибке
Формат данных Пример данных
(успешных/неуспешных)
Приветственное сообщение
на главной странице
GET /
ip / домен корневого URL, где работает сервер: http://example.org/
Welcome to my Flask App! None HTML-строка html<p>Welcome to my Flask App!</p>
Регистрация
нового пользователя
POST /api/register
Все учётные данные:
json{"username": <username>, "password": <password with a-zA-Z0-9 and specials (length from 8 to 16)>, "email": <[email protected]>}
HTTP-статус: 200;
Тело ответа
HTTP-статус: 502;
Ответ в json;
в поле exception: описание ошибки
JSON json{'status': 'success', 'message': 'User registered successfully'},200
json{'status': 'exception','message': 'Exception('An error occurred during registration')'}, 502
Вход
пользователя
POST /api/login
Существующие email / username и password:
json{"username": <username>, "email": <[email protected]>, "password": <password>}
HTTP-статус: 200;
Тело ответа
HTTP-статус: 502;
Ответ в json;
в поле exception: описание ошибки
JSON json{'status': 'success', 'message': 'User logged successfully', 'token': token},200
json{'status': 'exception','message': 'Exception('Invalid credentials')'}, 502
Удаление
пользователя
POST /api/user/delete
Токен доступа существующего пользователя:
json{"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."}
HTTP-статус: 200;
Тело ответа
HTTP-статус: 403/502;
Ответ в json;
в поле exception: описание ошибки
JSON json{'status': 'success', 'message': 'User deleted successfully'},200
json{'status': 'error', 'message': 'token invalid'},403
json{'status': 'exception','message': 'Exception('An error occurred during user deletion')'}, 502
Получение списка
всех пользователей
POST /api/get_users
Токен доступа существующего пользователя:
json{"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."}
HTTP-статус: 200;
Тело ответа
HTTP-статус: 403/502;
Ответ в json;
в поле exception: описание ошибки
JSON json{'id': 1, 'username': 'user1', 'email': '[email protected]'}, {'id': 2, 'username': 'user2', 'email': '[email protected]'}
json{'status': 'error', 'message': 'token invalid'},403
json{'status': 'exception','message': 'Exception('An error occurred during getting data users')'}, 502
Обновление данных
пользователя
POST /api/user/update
Токен доступа и обновляемые username / email / password:
json{"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...","key": <[email protected]>, "value": <[email protected]>}
HTTP-статус: 200;
Тело ответа
HTTP-статус: 502;
Ответ в json;
в поле exception: описание ошибки
JSON json{'status': 'success'}, 200
json{'status': 'error', 'exception': 'Unsupported key type: only username, password, email'}, 502
json{'error': 'exception','exception': 'token invalid'}, 403

About

A simple Flask based server application that provides access to database with registration and authentication functionality

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages