技术与架构分析(第二组)

Posted gongchengmiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了技术与架构分析(第二组)相关的知识,希望对你有一定的参考价值。

一.整体架构

技术分享图片

 

本次软工项目我们选取的技术框架是Django。

Django,是一个开放源代码的Web应用框架,由Python写成,采用了MVC的软件设计模式,即模型M,视图V,控制器C。 Django的主要目标是使得开发复杂的、数据库驱动的网站变得简单,注重组件的重用性和“可插拔性”,敏捷开发和DRY法则(Don‘t Repeat Yourself)。

核心组件

 

Django框架的核心包括

一个面向对象的映射器,用作数据模型(以Python类的形式定义)和关联性数据库间的媒介;

一个基于正则表达式的URL分发器;

一个视图系统,用于处理请求;

一个模板系统。

核心框架中还包括:

  • 一个轻量级的、独立的Web服务器,用于开发和测试。
  • 一个表单序列化及验证系统,用于html表单和适于数据库存储的数据之间的转换。
  • 一个缓存框架,并有几种缓存方式可供选择。
  • 中间件支持,允许对请求处理的各个阶段进行干涉。
  • 内置的分发系统允许应用程序中的组件采用预定义的信号进行相互间的通信。
  • 一个序列化系统,能够生成或读取采用XML或JSON表示的Django模型实例。
  • 一个用于扩展模板引擎的能力的系统。

 

内置应用

 Django 包含了很多应用在它的"contrib"包中,这些包括:

  • 一个可扩展的认证系统
  • 动态站点管理页面
  • 一组产生RSS和Atom的工具
  • 一个灵活的评论系统
  • 产生Google站点地图(Google Sitemaps)的工具
  • 防止跨站请求伪造(cross-site request forgery)的工具
  • 一套支持轻量级标记语言(Textile和Markdown)的模板库
  • 一套协助创建地理信息系统(GIS)的基础框架

 

服务器部署

 Django可以运行在启用了mod python的Apache 2上,或是任何WSGI兼容的Web服务器。Django也有启动FastCGI服务的能力,因此能够应用于任何支持FastCGI的机器上,Django1.0已经可以利用Jython运行在任何J2EE服务器。

下列数据库引擎被Django官方支持:

  • PostgreSQL
  • mysql
  • SQLite
  • Oracle

二.技术细节

1.AJAX

AJAX即“Asynchronous javascript and XML”(异步的JavaScriptXML技术),指的是一套综合了多项技术的浏览器网页开发技术。

AJAX应用可以仅向服务器发送并取回必须的数据,并在客户端采用JavaScript处理来自服务器的回应。因为在服务器和浏览器之间交换的数据大量减少,服务器回应更快了。同时,很多的处理工作可以在发出请求的客户端机器上完成,因此Web服务器的负荷也减少了。

在用户使用频繁的网页,我们使用了AJAX技术来实现与服务器的交互,既减小了服务器的负荷,也里利用了AJAX技术可以局部刷新界面的技术,直接替换html文件的内容,而不需要重新刷新整个界面,提高了用户使用体验。

2.Django框架下的extra_app

  • Django-Ueditor                   富文本编辑器
  • Django-haystack                全文检索搜索引擎
  • Django-liked                       模糊搜索

以上是关于技术与架构分析(第二组)的主要内容,如果未能解决你的问题,请参考以下文章

微服务架构改造整体方案与案例分析:技术导入

《大型网站技术架构:核心原理与案例分析》阅读笔记二

大型网站技术架构-核心原理与案例分析-阅读笔记3

大型网站技术架构-核心原理与案例分析-阅读笔记02

《大型网站技术架构:核心原理与案例分析》结合需求征集系统分析

大型网站技术架构-核心原理与案例分析-阅读笔记4