Skip to content

基于Tornado的web mvc框架。参考了torngas(torngas大量参考和借鉴了Django的设计模式),形成一套基于tornado的Django like应用层开发框架。tornado 建议使用5.0.2及以上版本

License

Notifications You must be signed in to change notification settings

leeyisoft/py_admin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

3300561 · Mar 7, 2020
Jul 28, 2019
Feb 17, 2020
Feb 3, 2020
Feb 3, 2020
Feb 3, 2020
Jan 2, 2020
Jan 2, 2020
Aug 3, 2018
May 10, 2018
Mar 7, 2020
May 3, 2018
Feb 3, 2020
Mar 7, 2020
Feb 15, 2020
Feb 3, 2020
Dec 29, 2019

Repository files navigation

[TOC]

基于Tornado的restful API 系统;tornado 建议使用6.0.1

wiki

demo

API响应,在任意需要的地方 raise JsonError

from trest.exception import JsonError

raise JsonError('msg')
raise JsonError('msg', 0)
raise JsonError('msg', 1, [])
raise JsonError('msg', 1, [1,2,3])

环境依赖

  • 本人在在MacBookPro下采用 Python3.7.2+MySQL5.7开发,应该可以所以操作系统化下面跑起来 (MySQL5.6.2及以上)
  • 不打算支持Python3.6以下的Python环境了,会跟随tornado或Python升级代码
  • 操作数据库的ORM框架为 SQLAlchemy(SQLAlchemy包括用于SQLite,Postgresql,MySQL,Oracle,MS-SQL,Firebird,Sybase等的语言),如果要用其他数据库,本软件应该要做少许的调整
  • 引入 pipenv https://github.com/pypa/pipenv/blob/master/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_master pya_db_slave pya_up_db pya_redis pya_py_admin

docker-compose -f docker-local.yml up

// 后台运行
docker-compose -f docker-local.yml up -d

// Run a command in a running container
docker exec -it pya_py_admin bash

// Fetch the logs of a container
docker logs -f -t pya_py_admin

原生开发启动

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

pipenv install --skip-lock --pypi-mirror=http://mirrors.cloud.aliyuncs.com/pypi/simple
// or
pipenv install --dev --skip-lock

// 配置本地开发环境变量,然后启动
cp configs/dev.yaml configs/product.yaml
echo '# RUNTIME_ENV is not one of the local, dev, test, or product
# the colon must have Spaces around it
RUNTIME_ENV : product' > .env

// 开启虚拟环境
pipenv shell
// 启动项目
python server.py --port=5080

// 退出pipenv
exit

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

多项目共享一个 venv 节省磁盘空间的方法

“ .venv 有84M之多”,在生产环境 CentOS7 中要部署多套代码,它都是一样的,多项目共享一个 venv 节省磁盘空间的方法

在第一个项目 pipenv install 命令之后,执行下面命令

mv .venv /root/.local/share/venv_py_admin
ln -s /root/.local/share/venv_py_admin .venv

之后其他项目 clone 下来之后,只要做软连接就行了

DB

参见 datas/sql 目录

db other

show processlist;

set global validate_password_policy=0;

// for mysql8
set global validate_password.policy=0;

create database db_py_admin default charset utf8 COLLATE utf8_general_ci;
CREATE USER user_py_admin IDENTIFIED BY 'eb27acWq#16E1';
GRANT ALL ON db_py_admin.* TO 'user_py_admin'@'%';
flush privileges;


// 只导出表结构
mysqldump --opt -d db_py_admin -u root -p > datas/db.sql
// alter database db_py_admin collate utf8_general_ci

features

  • 后台配置添加
  • 后台用户角色管理
  • 基于角色的权限功能,后台用户管理
  • 登录密码经过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 生成公钥私钥

// 生成 RSA 私钥
openssl genrsa -out dev_privkey.pem 1024
// 从密钥中提取公钥
openssl rsa -pubout -in dev_privkey.pem -out dev_pubkey.pem

查询数据用 GET 添加/修改数据用 POST 删除数据用 DELETE

还有发放奖励功能需要做 用户上传头像的功能

Other

        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)

About

基于Tornado的web mvc框架。参考了torngas(torngas大量参考和借鉴了Django的设计模式),形成一套基于tornado的Django like应用层开发框架。tornado 建议使用5.0.2及以上版本

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published