框架学习boostrap MVC beego django laravel

来源:互联网 发布:儿童画板软件下载 编辑:程序博客网 时间:2024/06/03 07:44

Goal

1、学习Python php
2、了解boostrap MVC beego django laravel

What I get

MVC

MVC是一种框架,全称Model-View-Controller
1. Model(模型)——应用程序的处理:应用程序的核心,用来处理应用程序数据逻辑。
模型对象通常用来存取数据库数据。模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用像EJBs和ColdFusion Components这样的构件对象来处理数据库,被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
2. View(视图)——应用程序的输入:处理显示数据
视图是根据模型数据来显示的,是用户看到的并且可以进行交互的界面,对于Web来说,一般用HTML/CSS等实现。
3. Controller(控制器)——应用程序的输出:处理用户与数据库之间的交互
负责从视图中读取数据,控制用户操作,将数据交给模型处理。Controller本身不输出任何东西和做任何处理,它只是接受用户的输入并调用模型和视图去完成用户的需求。它的功能就是接受请求并决定调用哪个模型接口去处理请求,然后决定使用哪个视图去显示返回的数据。
MVC简化了分组开发,不同的技术人员可以同时开发不同的模块,提高开发效率。

框架 设计模式

1、概念

1)框架:软件框架是项目软件开发过程中提取特定领域软件的共性部分形成的体系结构,不同领域的软件项目有着不同的框架类型。框架不是现成可用的应用系统。而是一个半成品,提供了诸多服务,开发人员进行二次开发,实现具体功能的应用系统。
种类:MVC、MTV、MVP、CBD、ORM等等
2)设计模式:是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,它强调的是一个设计问题的解决方法。
种类:工厂模式、适配器模式、策略模式等等

2、区别

1)框架与架构不同。架构确定了系统的整体结构、层次划分、不同部件之间的协作等,偏重于设计;框架比架构更加具体,更加偏重于技术。
2)设计模式研究的是针对单一问题的设计思路和解决方法,一个模式可应用于不同的框架和被不同的应用所实现;而框架则是一个应用的体系结构,是一种或多种设计模式和代码的混合体。
3)设计模式和框架在应用的领域和提供的内容不同。

  • 从应用领域来分,框架给出的是整个应用的体系结构;而设计模式给出了单一设计问题的解决方法,并且这个解决方法可在不同的应用程序或者框架中应用。
  • 从内容上分,设计模式是一个单纯的设计,这个设计可以被不同语言以不同方式来实现;而框架是设计和代码的一个混合体,编程者可以用各种方法对框架进行扩展,进而形成完整的不同的应用。
  • 以第二条为基础,可以看出设计模式比框架更容易移植:框架一旦设计成形,虽然还没有构成完整的一个应用,但是以其为基础进行应用的开发显然要受制于框架的实现环境;而设计模式与语言无关,所以可以在更广泛的异构环境中进行应用。
  • 简而言之:框架是大智慧,用来对软件设计进行分工;设计模式是小技巧,对具体问题提出解决方案,以提高代码复用率,降低耦合度。

4)设计模式主要是针对单一问题的解决方法,范畴比较小,而架构是高层次的针对体系结构的一种设计思路,范畴比较大

3、关系

1)一个架构可以通过多种框架来实现。
2)一个架构中可能会出现多个设计模式来解决多种架构中的问题。设计模式的思想可以在框架设计中进行应用。
3)设计模式的思想可以在框架设计中进行应用。
4)在做一个项目的时候首先出来的应该是架构,是对整个问题的一个总体上的设计,之后再会考虑运用什么样的框架和设计模式来实现我们的架构;当然,只使用框架和设计模式中的一种也是经常遇到的。

Laravel

1、概述

Laravel是一种PHP Web开发框架,被称为“全栈”式框架,因为它处理从网络服务到数据库管理,直到HTML生成的一切事情,一个垂直集成的web开发环境能给开发者提供更好的体验。程序员可以通过命令行工具与Laravel交互,生成和管理Laravel项目环境。Laravel带有一个名为Artisan的优秀的命令行工具,可以用它来生成框架代码和数据库架构,Artisan能够处理从数据库架构迁移到资源和配置管理的一切事情。

2、Laravel项目文件目录
文件夹 作用 app 包含了站点的controllers(控制器),models(模型),views(视图)和assets(资源)。这些是网站运行的主要代码 bootstrap 用来存放系统启动时需要的文件,这些文件会被如index.php这样的文件调用 public 这个文件夹是唯一外界可以看到的,是必须指向你web服务器的目录。它含有laravel框架核心的引导文件index.php,这个目录也可用来存放任何可以公开的静态资源,如css,Javascript,images等 vendor 用来存放所有的第三方代码,在一个典型的Laravel应用程序,这包括Laravel源代码及其相关,并含有额外的预包装功能的插件。

标准的Laravel应用程序结构由一个应用程序目录app/,它含有三个子目录:models/,views/和controllers/。这就透露了Laravel遵循model-view-controller(MVC)架构模式,就是强制将输入到展示逻辑关系的“业务逻辑”与图形用户界面(GUI)分开。就Laravel web应用而言,业务逻辑通常由像用户,博客文章这样的数据模型组成。

3、Laravel组件

1)当与Laravel交互时,浏览器发送一个请求,web服务器接收到请求并且传给Laravel路由引擎。Laravel路由接收到请求,然后重定向给基于路由的URL模式的合适的控制器类方法。
2)然后控制器类接管。在某种情况下,控制器会立即呈现出一个视图,它是一个被转换成HTML并送回浏览器的模版。更常见的动态网站,控制器与模型交互,这是一个PHP对象,它表示应用程序(如用户、博客文章)中的一个元素,并负责与数据库进行通信的。调用模型后,控制器则呈现最终视图( HTML,CSS和图像),并返回完整的网页到用户的浏览器。
Laravel促进了这样的概念——模型、视图和控制器,应通过存储这些元素在不同的目录中的单独的代码文件中来保持相当的独立性。这就是Laravel目录结构发挥了作用。

Bootstrap

1、概述

Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架。Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的。

2、内容
  • 基本结构:Bootstrap 提供了一个带有网格系统、链接样式、背景的基本结构。这将在 Bootstrap 基本结构 部分详细讲解。
  • CSS:Bootstrap 自带以下特性:全局的 CSS 设置、定义基本的 HTML 元素样式、可扩展的 class,以及一个先进的网格系统。这将在 Bootstrap CSS 部分详细讲解。
  • 组件:Bootstrap 包含了十几个可重用的组件,用于创建图像、下拉菜单、导航、警告框、弹出框等等。这将在 布局组件 部分详细讲解。
  • JavaScript 插件:Bootstrap 包含了十几个自定义的 jQuery 插件。您可以直接包含所有的插件,也可以逐个包含这些插件。这将在 Bootstrap 插件 部分详细讲解。
  • 定制:您可以定制 Bootstrap 的组件、LESS 变量和 jQuery 插件来得到您自己的版本。
3、使用

引用jquery.js、bootstrap.min.js 和 bootstrap.min.css 文件,用于让一个常规的 HTML 文件变为使用了 Bootstrap 的模板。

<!-- 引入 Bootstrap -->    <link href="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">  <!-- HTML5 Shim 和 Respond.js 用于让 IE8 支持 HTML5元素和媒体查询 -->  <!-- 注意: 如果通过 file://  引入 Respond.js 文件,则该文件无法起效果 -->  <!--[if lt IE 9]>    <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>    <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>  <!-- jQuery (Bootstrap 的 JavaScript 插件需要引入 jQuery) -->    <script src="https://code.jquery.com/jquery.js"></script>  <!-- 包括所有已编译的插件 -->    <script src="js/bootstrap.min.js"></script>

Django

1、概述

Django是利用Python实现的Web应用的框架,采用了MTV的框架模式,即模型M,视图V和控制器C。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式。

2、架构设计
层次 职责 模型(Model),即数据存取层 处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。 视图(View),即表现层 处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。 模板(Template),即业务逻辑层 存取模型及调取恰当模板的相关逻辑。模型与模板的桥梁。

Django 视图不处理用户输入,而仅仅决定要展现哪些数据给用户,而Django 模板 仅仅决定如何展现Django视图指定的数据。或者说, Django将MVC中的视图进一步分解为 Django视图 和 Django模板两个部分,分别决定 “展现哪些数据” 和 “如何展现”,使得Django的模板可以根据需要随时替换,而不仅仅限制于内置的模板。

3、安装

根据官网的教程http://www.ziqiangxuetang.com/django/django-install.html
Python升级:
下载安装包,解压缩,进入该文件夹

 ./configure --prefix=/路径名  make  make install  vi ~/.bashrc //(将新下载的Python的路径加入$PATH中)  source ~/.bashrc //(使配置生效)  echo $PATH// (可以看到Python的新路径)
4、HelloWorld

实现helloworld:教程http://www.runoob.com/django/django-first-app.html

 python manage.py runserver local_ip:port_num(该命令要在被执行的项目的目录下执行才能生效)  $lsof -i :port_num  kill -9 pid (杀死占用端口port_num的进程)

Beego

1、概述

Beego是一个能够快速开发Go应用程序的Http框架。它可以用来迅速地开发API、网络App和后端服务。同时,它也可以作为RESTful 框架。其设计灵感主要来自Python和Rails流行的框架,借鉴了Python语言开发的框架Tornado和Flask以及Ruby开发的web框架Sinatra。

2、项目结构

├── conf
│ └── app.conf
├── controllers
│ ├── admin
│ └── default.go
├── main.go
├── models
│ └── models.go
├── static
│ ├── css
│ ├── ico
│ ├── img
│ └── js
└── views
├── admin
└── index.tpl
beego 是基于八大独立的模块构建的,是一个高度解耦的框架。用户即使不使用 beego 的 HTTP 逻辑,也依旧可以使用这些独立模块,例如:你可以使用 cache 模块来做你的缓存逻辑;使用日志模块来记录你的操作信息;使用 config 模块来解析你各种格式的文件。所以 beego 不仅可以用于 HTTP 类的应用开发,在你的 socket 游戏开发中也是很有用的模块。

3、helloworld

安装教程及环境配置:http://blog.csdn.net/xiaobei4929/article/details/45671639
实现HelloWorld:

 cd $GOPATH/src  bee new hello //创建名为hello的项目,新建一个 Web 项目,该命令必须在 $GOPATH/src 下执行  cd hello     //进入该项目的目录下  vi main.go //整个程序的入口

将main.go的代码修改:

  package main   import (     "github.com/astaxie/beego")   type MainController struct {      beego.Controller}   func (this *MainController) Get() {      this.Ctx.WriteString("hello world")}   func main() {      beego.Router("/", &MainController{})      beego.Run()} 

为了解决端口冲突,要进行hello文件夹内,src/hello/conf,修改app.conf。这种修改只对该项目有效,其他项目的端口号依然是默认端口号8080.

  vi app.conf  httpport= 8099

退出hello文件夹到$GOPATH/src,执行命令

  cd ../  bee run hello //bee run 命令是监控 beego 的项目,通过 fsnotify监控文件系统。但是注意该命令必须在$GOPATH/src/appname 下执行。

最后,可以打开浏览器,查看结果,http://默认IP:8099

原创粉丝点击