上一篇博客中,我们将简单的路由解析和执行,从入口文件public/index.php中移入到框架中.入口文件顿时变得清爽无比-- 但是,去我们的controller里看一下,会看到如下的code: public function actionView() { $body = 'Test body information'; require '../views/site/view.php'; } 难道我们每写一个要去渲染页面的action,都要去找相应路径的view,然后把它require进来.肯…
作为一个ERP数据处理框架,大部分的开发场景都差不多. 理想中,对于通用数据处理,我的步骤如下: 1.为窗体指定数据来源(数据表/查询等): 2.拖入编辑控件,指定绑定字段: 3.结束. 为此,我设计了几个基类窗体,给它们分成几个场景(如无数据/单表数据/主从表/多表关联等),在不同的业务模型下,我选取相应的基类窗体进行继承. 首先,看看最基础的基类窗体,它包含了基础的处理(诸如多语言加载.权限判断.状态刷新.自动数据绑定等基础方法和属性): /// <summary> /// 窗体基类 //…
作为ERP等数据应用程序,数据库的处理是重中之重. 在框架中,我封装了一个数据库的基类,在每个模组启动或窗体启动过程中,实例化一个基类即可调用CRUD操作(create 添加read读取 update 修改delete删除),当然,还包括基础的SQL事务处理. 这个过程中,还考虑到对插件的管控,利用反射增加了调用授权,避免未经授权的程序盗用数据连接. 看看完整的代码: /// <summary> /// 数据库连接基类 /// </summary> public class DBC…
上一篇博客中,我们搭建了一个最简单的框架,从单一入口的public/index.php进入,解析出相应的Controller和Action,去执行,渲染出相应的页面或者输出相应的数据. 但是我们可以看到在public/index.php文件中,是一堆代码,如果之后,我要添加权限/事件等等的机制是不是也要也在这里,那不难想象,不就的将来,index.php就会变成一个巨大无比的php文件.我们当然不想看到这样的情景,所以我们需要将这些内容抽象出来,保持入口文件的简单明了. 那我们要将这些内容抽象到…
在了解这个函数之前先来看另一个函数:__autoload. 一.__autoload 这是一个自动加载函数,在PHP5中,当我们实例化一个未定义的类时,就会触发此函数.看下面例子: printit.class.php <?php class PRINTIT { function doPrint() { echo 'hello world'; } } ?> index.php <? function __autoload( $class ) { $file = $class . '.cla…
如果没有特别需求,和场景1一样只变更表名,主键字段,检测字段等名称,不需要写其它代码了. * 清单列表+单笔编辑/保存,适用于大多数基础资料管理以及简单的单据资料录入(当然,排版是要改一改的): * 目录树(也为列表+单笔记录变更模式):…
最基础的窗体基类其实是通过应用场景反推的结构. 以下是场景一: 单表应用,普通的数据,比如单位/颜色/特殊字典等使用者少的,无需过多控制的可以使用一个数据表格来管理. 和Excel表格差不多,批量修改,统一保存. 这种设计时只需要变更Datagridview的数据列,并在代码中指定数据来源即可.看下代码: #region 数据目标定义 SaveTableName = "SYS_URightDef"; SaveTablePrimaryKey = "URDefRKEYIN&quo…
Keras的Layers,就是构成网络的每一层.Keras实现了很多层,包括核心层.卷基层.RNN网络层等诸多常用的网络结构.下面开介绍核心层中包含了哪些内容.因为这个核心层我现在还没有全部用到,所以会有一部分内容我并不是十分了解,因此直接附带了原文档介绍.有了解的朋友可以一起交流! 核心层基类       keras.layers.core.Layer() 下面介绍一下该类中包含的几个基本方法. # 把previous_layer层的输出连接到当前层的输入 set_previous(previ…
前端于对数据操作的请求基本上就分为四类:增删改查,即增加.删除.修改.查询. 而DRF把前端请求分为两个大类:带ID参数请求和不带ID参数请求. 不带ID参数请求包括:增加.分布多条查询 带ID参数请求包括:删除.修改.单条查询 DRF针对这五类需求,分别提供了五个扩展类来支持,叫Mixin扩展类. GenericAPIView继承自APIView,主要增加了操作序列化器和数据查询的方法.作用是为Mixin扩展类执行提供方法支持.通常在使用时,可搭配一个或多个Mixin扩展类. 找到并打开App…
之前学习了模型序列化和普通序列化,我们用最简单的视图和url实现了对序列化的操作. 而实际上,象之前那种由DRF自动生成所有的视图和url的情况,在应用是使用很少.而需要用户根据实际业务需求,自定义视图和url. DRF提供了丰富的视图类,可以满足程序员的各种需求,基本上一个需求可以用多种视图来满足. 1 导入包 找到Applications/Exampls/views下的Schools.py文件,先导入以下包: from rest_framework.views import APIView…