1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/leeyi-py_admin

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

[Содержание]

Система RESTful API на основе Tornado; рекомендованная версия Tornado — 6.0.1

Вики

Разработческие соглашения

Избегайте использования терминологии типа "master/slave"

Старое Новое Описание
master основной главный
slave зависимый отдельный
blacklist denylist список запрещённых
whitelist allowlist список разрешённых

Пример

Ответ API, выбросьте JsonError там, где это необходимо

from trest.exception import JsonError

raise JsonError('сообщение')
raise JsonError('сообщение', 0)
raise JsonError('сообщение', 1, [])
raise JsonError('сообщение', 1, [1, 2, 3])
```# Зависимости окружения
* Я использую Python 3.7.2 + MySQL 5.7 на MacBook Pro, должно работать на всех операционных системах (MySQL 5.6.2 и выше)
* Поддержка Python ниже 3.6 больше не планируется, код будет обновлен вместе с Tornado или Python
* ORM-фреймворк для работы с базами данных  SQLAlchemy (SQLAlchemy поддерживает SQLite, PostgreSQL, MySQL, Oracle, MS SQL, Firebird, Sybase и другие), если требуется использовать другую базу данных, потребуется небольшая настройка
* Используйте pipenv https://github.com/pypa/pipenv/blob/main/docs/advanced.rst# Запуск проекта
Обратите внимание: При запуске Docker-окружения нет необходимости создавать .env файл для производства

## Запуск Docker-окружения

git clone https://gitee.com/leeyi/py_admin.git py_admin && cd py_admin // Удаление контейнеров Docker docker rm -f pya_db_main pya_db_subordinate pya_up_db pya_redis pya_py_admin

docker-compose -f docker-local.yml up

// Запустить в фоновом режиме docker-compose -f docker-local.yml up -d

// Выполнить команду внутри работающего контейнера docker exec -it pya_py_admin bash

// Получить логи работающего контейнера docker logs -f -t pya_py_admin


## Запуск проекта без Docker

git clone https://gitee.com/leeyi/py_admin.git py_admin && cd py_admin

pipenv install --skip-lock --pypi-mirror=http://mirrors.aliyun.com/pypi/simple/ // или pipenv install --dev --skip-lock


Настройка локальных переменных окружения для разработки, затем запуск:

```bash
cp configs/dev.yaml configs/product.yaml
echo '# RUNTIME_ENV не является одним из значений local, dev, test или product
# двоеточие должно иметь пробелы вокруг него
RUNTIME_ENV : product' > .env

# Включение виртуального окружения
pipenv shell
# Запуск проекта
python server.py --port=5080

# Выход из pipenv
exit

Установка зависимостей с помощью pipenv:

pipenv install -e git+https://gitee.com/leeyi/trest.git@main#egg=trest

Метод использования одного общего виртуального окружения для нескольких проектов, чтобы сэкономить место на диске:

После выполнения команды pipenv install в первом проекте выполните следующие команды:

mv .venv /root/.local/share/venv_py_admin
ln -s /root/.local/share/venv_py_admin .venv
```Для других проектов достаточно создать символьную ссылку.

### База данных
См. директорию `datas/sql`.

#### Другое
```sql
show processlist;

set global validate_password_policy = 0;

-- For MySQL 8
set global validate_password.policy = 0;

create database db_py_admin default character set utf8 collate utf8_general_ci;
CREATE USER user_py_admin identified by 'eb27acWq#16E1';
GRANT ALL PRIVILEGES ON db_py_admin.* TO 'user_py_admin'@'%';
flush privileges;

-- Export only the table structure
mysqldump --opt -d db_py_admin -u root -p > datas/db.sql

Основные возможности

  • Настройка конфигураций в админке
  • Управление ролями пользователей
  • Функционал управления правами доступа на основе ролей
  • Логины и пароли шифруются с использованием RSA, возможность отключения этой функции в админке, управление публичными и приватными ключами
  • Пароли пользователей хранятся зашифрованными с использованием "PBKDF2 + HMAC + SHA256"
  • Пароли базы данных зашифрованы AES, нет открытого хранения, шифрование AES имеет формат aes::: + ciphertext
  • Управление меню админки, см. файл applications/admin/menu.py, docstring
  • Ссылка на сайт Torngas
  • Другие возможности наследуются от Tornado

Информация о директориях

Подробное описание находится в разделе Архитектурное описание TRest проекта.

git clone ...
cd py_admin

tree -I '*svn|*node_module*|*git|py3|*.pyc|__pycache__|statics'
```### Генерация публичных и приватных ключей с помощью OpenSSL
```bash
# Создание приватного ключа RSA
openssl genrsa -out dev_privkey.pem 1024
# Получение публичного ключа из приватного ключа
openssl rsa -pubout -in dev_privkey.pem -out dev_pubkey.pem

Запрос данных выполняется с помощью GET. Добавление/редактирование данных выполняется с помощью POST. Удаление данных выполняется с помощью DELETE.Также требуется реализовать функционал для выдачи наград и возможность загрузки аватаров пользователями.

Другое

from applications.core.utils.encrypter import RSAEncrypter
from applications.vsn1.services import ApiVsnService
(code_, msg_, pubkeyser) = ApiVsnService.pubkeyser('1.0.0')
plaintext = 'Ly123456'
ciphertext = RSAEncrypter.encrypt(plaintext, pubkeyser)
print('ciphertext', ciphertext)

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Python и 5 других языков
BSD-3-Clause
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/leeyi-py_admin.git
git@api.gitlife.ru:oschina-mirror/leeyi-py_admin.git
oschina-mirror
leeyi-py_admin
leeyi-py_admin
main