`

Django 与 Flash 的结合!-- 带给你更为强大的Web体验

阅读更多
1. Django与Flash的结合

相信大家对于Flash还是很熟悉的,shockwave Flash的浏览器插件在网络上也是相当普及。它的应用很广泛,不仅可以作为浏览器插件,还可以独立于播放器进行播放。从手机到台式机,从游戏应用到教育应用到工作报告都可以用它来表现。它还是一个极富扩展性的RIA客户端,adobe在收购Macromedia公司后,继续强化了Flash的RIA应用。新的ActionScript 3.0将原先的Flash Remoting Components集成后,变成了一个大的flash.net Package。传输格式也由AMF0变成AMF3格式。

Flash可以适用多种网络技术,XML-RPC,SOAP,AMF-RPC.我们这篇主要说的是用Flash AMF-RPC的方式远程调用Django的服务,其它的方式我们以后再说。(例如简单的request和response功能)

既然是python社区,大家应该对Django都比较熟悉,我就不多提了。它是一个提供快速开发web框架。


1.1. Flash 与 Django 的关系
因为Django不涉及前端,而只提供后台服务。Flash也同样,只需要处理前端,并与后台通迅。它们之间通过AMF-RPC的中间件方式直接调用。

AMF-RPC是使用AMF数据格式实现的远程方法调用,它是一个应用程序服务器网关,在Flash应用程序和远程服务之间提供一个相互通迅的网络通道,在这个通道之间舆的是AMF格式的数据。它可以对数据类型自动转换,可以转换成ActionScript代码数据类型,也可以转成服务器程序数据类型。

AMF是一个二进制格式,将Flash程序和后台服务之间的通迅信息序列化,传输速度非常快。


1.1.1. 安装AMF环境
先装好Django
然后装上djangoamf-x.x.zip 的模块,这个一个日本人写的。完全由python写的,更新速度还挺快,就是文档还比较少。
这儿是网址: http://djangoamf.sourceforge.jp/index.php?UserManual_en


1.1.2. 创建Django的Flash RIA应用
在settings.py中加上'amf.django.middleware.AMFMiddleware',

例:

MIDDLEWARE_CLASSES = (
   'django.middleware.common.CommonMiddleware',
   'django.contrib.sessions.middleware.SessionMiddleware',
   'django.contrib.auth.middleware.AuthenticationMiddleware',
   'django.middleware.doc.XViewMiddleware',
   'amf.django.middleware.AMFMiddleware',
)
再加上几个变量设置:

AMF_GATEWAY_PATH = '/gateway/'

AMF_LOG_LEVEL = 'INFO'
AMF_LOG_FILE = '/path/to/log.txt' #这个路径改成实际路径
AMF_LOG_FILE_ENCODING = 'utf8'
AMF_LOG_FILE_MODE = 'a'
然后在views.py中加上需要调用的服务函数, 如sendback 最后在Flash的ActionScript中调用服务。

import remoting.*;
import flash.net.Responder;

var gatewayUrl:String = "http://127.0.0.1/gateway/";
var serviceName:String = "calculateService";
var serviceFactory:ServiceFactory =
ServiceFactory.getInstance(gatewayUrl);
var service:RemotingService = serviceFactory.getService(serviceName);

//trace(service);
send_btn.addEventListener(MouseEvent.MOUSE_UP, clickHandler);
function clickHandler(event:MouseEvent):void {
       var backValue:PendingCall = service.sendback(send_txt.text);   #这个是在
views.py中定义的函数
       backValue.responder = new Responder(handleResult, handleError);
}
function handleResult(ResultEvent:String):void {
       back_txt.text = ResultEvent;
}

function handleError(result:int):void {
       back_txt.text = "handleError is " + String(result);
}
stop();

1.2. 例子
我做了一个例子,在Flash端直接输入python语句,然后直接在Flash端就可以看到服务器端返回的结果。 比如在服务器端输入

a = 5
b = 6
a + b
结果为

5
6
11
这个例子可以用于调试服务器端的程序,直接查询设置服务器端的全局变量,或者执行另一个函数,import 另一个模块。

例子代码附件

本文转自:http://wiki.woodpecker.org.cn/moin/DjangoFlash
分享到:
评论

相关推荐

    django-admin-bootstrap-master.zip

    这个项目旨在提供一个美观、响应式且用户体验友好的Django后台管理界面。Bootstrap是一个流行的前端框架,用于构建现代网页应用,其特点是简洁、灵活且功能强大。 在深入探讨这个项目的细节之前,我们需要理解...

    Python库 | django_restql-0.3.1-py3-none-any.whl

    `django_restql`就是将GraphQL的强大查询能力与Django的RESTful API集成起来的工具。 **django_restql库** `django_restql`的核心功能是通过简化和扩展Django的`QuerySet` API,使开发者能够使用类似GraphQL的语法...

    Python库 | django_flash-1.5.2-py2.5.egg

    python库。 资源全名:django_flash-1.5.2-py2.5.egg

    Python库 | django_flash-1.6.1-py2.4.egg

    在开发基于Django的后端应用时,`django_flash`库提供了一个强大且灵活的消息系统,使得用户体验更加流畅。它可以与Django的内置消息框架结合使用,或者作为替代方案,根据项目需求选择适合的方式处理用户反馈。 ...

    Python库 | django-rest-framework-social-oauth2-1.0.1.tar.gz

    **Python库 django-rest-framework-social-oauth2-1.0.1** `django-rest-framework-social-oauth2` 是一个基于 Django Rest Framework 的社交认证扩展库,主要用于实现 OAuth2 身份验证流程。这个库使得 Django ...

    django-vue-admin-pro-master.zip

    《Django-Vue-Admin-Pro:构建高效后台管理系统》 ...通过深入学习和理解Django-Vue-Admin-Pro,开发者可以快速构建出具有专业品质的后台管理系统,同时享受到Django的强大后端功能和Vue.js的便捷前端体验。

    django-vue-admin-master.zip

    《Django-Vue-Admin深度解析与实践指南》 ...通过深入学习和实践“django-vue-admin-master.zip”项目,我们可以掌握Django与Vue.js的结合使用,提升Web开发技能,为构建高效、可维护的管理后台打下坚实基础。

    高效易用Django流程引擎源码 - django-lb-workflow

    便捷性:基于Django框架,提供了一套简单易用的接口,使得流程引擎的嵌入和扩展变得更为便捷。 文件结构概览: - Python源文件:68个(.py) - HTML页面:30个(.html) - 文档:6个(.rst) - 模板文件:10个...

    Python库 | django-endless-pagination-vue-1.2.tar.gz

    总结,`django-endless-pagination-vue-1.2` 结合了Django的强大后端处理能力和Vue.js的前端响应式渲染,为开发者提供了高效、易用的无限滚动分页解决方案,是构建现代Web应用的有力工具。理解并掌握这个库的使用,...

    Python库 | django-layers-hr-1.9.tar.gz

    Django是一款开源的Web应用框架,遵循MVT(Model-View-Template)设计模式,提供了快速开发和安全性的优秀特性。`django-layers-hr`则在此基础上,专门针对人力资源管理领域进行了定制,提供了如员工管理、职位管理...

    Python库 | django-minio-backend-2.5.0.tar.gz

    **Python库 django-minio-backend-2.5.0....总之,`django-minio-backend`是Django开发者在面临大量文件存储需求时的一个理想选择,结合MinIO的高性能存储服务,能为Web应用提供稳定、安全、可扩展的文件存储解决方案。

    PyPI 官网下载 | django-tables2-column-shifter-0.3.0.tar.gz

    今天我们要讨论的是其中的一个特定包——`django-tables2-column-shifter`,其版本为0.3.0,它是一个与Django框架紧密相关的工具,主要用于处理数据表的列移动功能。 Django是用Python编写的一个开源Web应用框架,...

    Python库 | django-session-idle-timeout-1.3.0.tar.gz

    在Python的世界里,Django作为一款强大的Web框架,因其高效、易用和丰富的功能而备受开发者喜爱。而在Django的生态系统中,有一个名为`django-session-idle-timeout`的库,它是Django应用中的一个实用工具,用于自动...

    PyPI 官网下载 | django-google-analytics-app-4.4.1.tar.gz

    它是Google Analytics API与Django之间的桥梁,使得开发者能够无缝集成Google Analytics的功能,如追踪用户行为、收集转化数据、分析流量来源等。这个版本4.4.1是对先前版本的更新和优化,可能包括性能提升、bug修复...

    PyPI 官网下载 | django_flash-1.6.1-py2.4.egg

    资源来自pypi官网。 资源全名:django_flash-1.6.1-py2.4.egg

    Python在线考试系统-大学毕业设计-基于Django+Django -Rest-Framework

    在这个系统中,我们主要关注的是基于Django和Django Rest Framework的实现方式,这两个是Python web开发的强大工具。 Django是一个高级的Python Web框架,它遵循模型-模板-视图(Model-Template-View,MTV)的设计...

    PyPI 官网下载 | django-pipeline-compass-0.1.4.tar.gz

    Django,作为Python最流行的Web框架之一,以其MVC(Model-View-Controller)设计模式和强大的功能著称。然而,在处理静态资源如CSS和JavaScript时,原始的Django并未提供特别高效的解决方案。这正是`django-pipeline...

    Python库 | django-deep-collector-0.3.1.tar.gz

    5. **兼容性**:与Django的内置序列化器兼容,可以方便地集成到现有的项目中。 ### 应用场景 1. **API开发**:在构建RESTful API时,需要返回复杂嵌套数据结构的场景。 2. **数据导出**:将数据库中的数据结构化为...

Global site tag (gtag.js) - Google Analytics