Golanger Web Framework(框架简单实现了MVC的设计方式)
来源:互联网 发布:itunes下载ipad软件 编辑:程序博客网 时间:2024/06/06 05:39
框架简单实现了MVC的设计方式
Features
- Routing
- Controllers
- Templates
- Session
- Plugins
约定的命名规则:
- Model: 存放在models目录中
- Controller: 存放在controllers目录中
- View: 存放在views目录中
- 静态文件放在static目录中
运行方法
安装:
- 下载go安装包,部署go的编译环境
- 安装相应的扩展包<非必须>
- 执行初步命令
cd [path]/website/helloworld/srcchmod +x ./build.sh
- 编译并执行程序
./build.sh
打开浏览器访问
- 根据输出的端口 [port]
- http://localhost:[port]
Golanger目录结构说明
Golanger框架主要实现了MVC模式(三层架构模式)(Model-View-Controller), 它是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)
Golanger约定的命名规则:
- 控制器(Controller): 存放在controllers目录中, 负责转发请求,对请求进行处理.
- 模型(Model): 存放在models目录中, 程序员编写程序应有的功能(实现算法等等)、数据管理和数据库设计(可以实现具体的功能).
- 视图(View): 存放在views目录中, 界面设计人员进行图形界面设计.
- 静态文件放在static目录中.
- add-on存放第三方库文件,默认是把GOPATH设置为这个目录.
本文以 samples/applicationTemplate/web/website.zip 项目为例,说说Golanger的目录结构:
~/website <master> tree.└── src // 项目源码目录 ├── add-on // 第三方扩展目录, 默认GOPATH目录 ├── build.bat // windows 平台编译脚本 ├── build.sh // Linux/Mac 平台编译脚本 ├── config // 项目配置信息目录 │ └── site // 项目配置文件,采用json的格式,配置了网站的一些基本信息 ├── controllers // 控制器(Controller)模块, 负责所有业务的请求,转发等业务逻辑 │ ├── 404.go // 404逻辑处理页面 │ ├── app.go // 控制器(Controller)模块的初始化, 每一个逻辑处理页面都要注册app.go │ └── index.go // // 1. 习惯性的将文件名与要处理的url路径名相同(通过App.RegisterController注册路径的Handle),来清晰的划分功能模块, // 注册响应要处理的url目录路径,然后处理子页面的逻辑。 // 2. 文件名和App.RegisterController注册的路径的Handle可以不同,主要依据App.RegisterController注册的路径的Handle。 // 3. 每个模块用一个文件名,用来功能性分离, 让结构更清晰而已。 ├── data // 存放App自有数据的目录 ├── doc.go // Go的文档文件 ├── helper // 助手模块, add-on里面的第三方库的包含, helper可以对它做二次封装。比如: website-admin 就对mgo进行了二次封装,方便以后的扩展。 ├── main.go // 项目启动文件,配置监听端口,配置文件,如果需要nginx之类的程序处理静态文件, //可以关闭 App.HandleFavicon() 和 App.HandleStatic()。支持无需停止程序,动态修改生效(除特殊说明的配置项) ├── models // 模型(Model),编写程序应有的功能(实现算法等等)、数据管理和数据库设计(可以实现具体的功能) │ └── table_name.go ├── readme // 项目说明文件 ├── static // 静态文件目录, 如果需要nginx之类的程序处理静态文件,可以关闭main.go里面中的 App.HandleFavicon() 和 App.HandleStatic()。 │ ├── add-on // 静态文件的第三方库 │ ├── theme // 主题目录 │ │ └── default // 网站的默认主题,可以在config/site中进行配置 │ │ ├── css // 样式文件夹 │ │ │ ├── global // golanger会自动判断此目录是否存在 │ │ │ │ └── global.css // 如果目录存在,golanger会自动判断global.css是否存在,如果存在,会自动相应的模板变量,并在全局包含 │ │ │ └── index // App.RegisterController注册路径的Handle, golanger会自动判断此目录是否存在 │ │ │ ├── global.css // 如果注册路径存在,golanger会自动判断global.css是否存在,如果存在,会自动相应的模板变量,并在全模块下包含 │ │ │ └── index.css // 如果注册路径存在,golanger会自动判断“注册路径”.css(index.css)是否存在,如果存在,会自动相应的模板变量,并在当前同名请求的页面包含 │ │ ├── img │ │ │ ├── global // golanger会自动判断此目录是否存在 │ │ │ └── index // App.RegisterController注册路径的Handle, golanger会自动判断此目录是否存在 │ │ └── js │ │ ├── global // golanger会自动判断此目录是否存在 │ │ │ └── global.js // 如果目录存在,golanger会自动判断global.js是否存在,如果存在,会自动相应的模板变量,并在全局包含 │ │ └── index // App.RegisterController注册路径的Handle, golanger会自动判断此目录是否存在 │ │ ├── global.js // 如果注册路径存在,golanger会自动判断global.js是否存在,如果存在,会自动相应的模板变量,并在全模块下包含 │ │ └── index.js // 如果注册路径存在,golanger会自动判断“注册路径”.css(index.css)是否存在,如果存在,会自动相应的模板变量,并在当前同名请求的页面包含 │ └── upload // 上传文件路径 ├── templateFunc // 模板函数扩展目录 │ └── operator.go // 一个简单的模板运算的库 ├── tmp // 临时文件目录 ├── views // 视图(View), 支持动态修改模板内容 │ └── theme // 主题目录 │ └── default // 网站的默认主题,可以在config/site中进行配置 │ ├── _global // golanger会自动判断此目录是否存在, 如果存在会自动加载相关的模板文件 │ │ ├── footer.html // footer 模板 │ │ └── header.html // header 模板 │ ├── index // App.RegisterController注册路径的Handle, golanger会自动判断此目录是否存在 │ │ └── index.html // 如果请求相关的注册路径,会自动加载相关的模板信息 │ └── _notfound │ └── 404.html └── website // 生成的执行文件
Samples Online
- 聊天室(chatroom)
- 记事本(guestbook)
- Helloworld
- 图片分享(pinterest)
- Golang Play
- Todo List
权限管理(website-admin).
- User: testgolanger
- Password: testgolanger
Wishlist
- Validation -- 帮助验证管理
- Hot Compile -- 代码或者模板修改后自动编译项目,你只需要刷新的你浏览器
- Debug -- 快速定位问题
性能测试
- Golanger Using Apache Bench for Simple Load Testing
开发者
- Li Wei lee@leetaifook.com
- Jiang Bian borderj@gmail.com
联系方式
WebSite
- Golanger Web Framework
- Golanger
- 新浪微博
- QQ群: 29994666
邮件列表
- Golanger邮件列表
- golanger@googlegroups.com
Open Source License
This version of golanger framework is licensed under the terms of the Open Source GPL 3.0 license.
http://www.gnu.org/licenses/gpl.html
Alternate Licensing
Commercial and OEM Licenses are available for an alternate download of golanger framework. This is the appropriate option if you are creating proprietary applications and you are not prepared to distribute and share the source code of your application under the GPL v3 license.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF THIRD-PARTY INTELLECTUAL PROPERTY RIGHTS. See the GNU General Public License for more details.
*/
package golanger
- Golanger Web Framework(框架简单实现了MVC的设计方式)
- Web MVC framework Web框架
- zend framework MVC框架的单入口的实现方式(随记)
- fast-framework – 基于 JDK 8 实现的 Java Web MVC 框架
- Node.js简单介绍并实现一个简单的Web MVC框架
- Node.js简单介绍并实现一个简单的Web MVC框架
- 2.1、Spring Web MVC是什么 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职
- 浅谈MVC框架的设计与实现
- werkzeug实现简单Python web框架(1):MVC模式
- PHP MVC 框架的简单实现参考
- PHP扩展实现的简单MVC框架
- php实现MVC框架的简单实例
- PHP的MVC框架简单实现
- Servlet3.0实现的简单mvc框架
- Node.js实现一个简单的Web MVC框架---我要看明白的第一个mvc
- 基于MVC设计模式的WEB应用框架研究
- 基于MVC设计模式的WEB应用框架研究~~转
- 基于MVC设计模式的WEB应用框架研究
- LibSVM scale-svm file in matlab
- CGContextSaveGState: invalid context
- oracle10G、oracle11G的expdp和impdp详解
- svm的二分类opencv源代码
- IOS UIPageController
- Golanger Web Framework(框架简单实现了MVC的设计方式)
- Oracle数据库查看一个进程是如何执行相关的实际SQL语句
- jstack和线程dump分析
- 用mediawiki搭建个人的本地知识管理系统
- 获取GUID
- javascript DOM详解之DOM1
- VIM快速移动
- vs2008 mfc 试图执行的操作不受支持
- 关于两市走势的基本判断