# madtornado **Repository Path**: github-image-library/madtornado ## Basic Information - **Project Name**: madtornado - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-07-13 - **Last Updated**: 2024-07-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # madtornado 现在你可以使用madtornado4去体会MVC模式的tornado开发,它不兼容现在的madtornado版本但是拥有更加友好的特性 [](https://pepy.tech/project/madtornado) [](https://pypi.python.org/pypi/madtornado) [](https://codebeat.co/projects/github-com-systemlight-madtornado-master) [](https://travis-ci.org/SystemLight/madtornado) [](https://madtornado.readthedocs.io/zh/latest/?badge=latest) [](https://gitter.im/systemlight-madtornado/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) madtornado是一个tornado框架的快速构建工具 PyPI page: https://pypi.python.org/pypi/madtornado [原生tornado文档参考](https://www.osgeo.cn/tornado/index.html) # 拥有的特性 - 可以灵活配置,通过配置文件改变服务器特性,如端口等信息 - 支持装饰器注册路由,注册路由地址支持列表即可以多个不同URL指向同一个handler - 提供代理模块,可灵活通过配置文件配置 - 提供sql语句处理模块,可简化单表查询工作。 - 提供文件分块上传案例模块,该模块非封装项只是演示如何通过madtornado完成分片上传,同时前端封装upload.js简化前端和后端交互 - 提供校验工具库check,灵活校验传递参数,配合madtornado拓展的参数获取方法可以非常容易获取和校验任何通用数据传参方式 - 提供拦截器封装模块,可以继承拦截器实现自己的拦截逻辑 - 拓展了tornado handler的方法,如果你想使用原生的tornado handler请继承RequestHandler,否则请继承handler.inheritHandler里面的Base - 开箱即用,通过在ancient下的view中编写模块,内置两个前台和后台模块,可以自行增加或删除,也可以通过(注意需要在madtornado根目录下运行)sea -np快速创建 - 内置sea命令行工具,不仅能快速创建madtornado项目,还同时包含一些快捷操作和madtornado进行交互便于开发 - 手机端测试查找地址,通过扫控制台打印的二维码快速定位,需要配置network_index指定打印的网卡,0代表不打印二维码 # 未来计划添加特性 - 强化虚拟主机配置能力 - 增强sql模块处理能力,采用链式查找方式,更加灵活 - 增加注册路由描述功能,帮助生成网站地图时添加描述信息 # 安装并创建一个madtornado项目 ``` pip install madtornado sea --init_project [写上你的目录路径,如./当前目录] 在当前目录下创建madtornado项目,请保证路径是空的文件夹,由于首次创建是从GitHub上进行下载,下载缓慢是有可能的, 非首次安装sea会从缓存中进行安装,如果想删除缓存使用sea --get_clean sea --init_project ./ 如果下载非常缓慢,请在release中直接下载对应版本的madtornado压缩包,放到要构建项目的目录下, 之后运行sea --init_project [路径] sea会直接解析该包,而不是去下载 查看更多sea命令 sea -h ``` # madtornado的一些特性 ## 使用`Reg.check`去轻松校验传递来的表单数据 ``` args = self.get_argument_for({"a": None, "b": None, "c": None}) check_rule = { "a": [check.not_null], "b": [check.not_null], "c": [check.not_null("c type is error")] } result = check.some(args, check_rule) print(result.__dict__) ``` # 使用 madtornado ## 工作区 ``` 你只需要关心文件夹下,书写业务逻辑即可 %madtornado_project%\ancient\view\ 例如这个模块,建议书写一些前台路由逻辑 %madtornado_project%\ancient\view\reception.py ``` ## 开启服务 ``` python server.py ``` ## 创建一条路由 ``` 在该模块中 : reception.py @register.route(use=register.PRT) class IndexHandler(BaseHandler): """ url: http://127.0.0.1:8095/prt/index """ async def get(self): self.write("