Python论坛  - 讨论区

标题:[python-chinese] [CPyUG:31646] Django与Flash的结合

2007年09月03日 星期一 18:09

Zoom.Quiet zoom.quiet在gmail.com
星期一 九月 3 18:09:52 HKT 2007

强!!果然有专门支持的Py 模块存在网络中哪…………
收录了!
http://wiki.woodpecker.org.cn/moin/DjangoFlash

On 9/3/07, Azureon <azureon.netspace在gmail.com> wrote:
> 相信大家对于Flash还是很熟悉的,shockwave Flash的浏览器插件在网络上也是相当普及。它的应用很广泛,不仅可以作为浏览器插件,还
> 可以独立于播放器进行播放。从手机到台式机,从游戏应用到教育应用到工作报告都可以用它来表现。它还是一个极富扩展性的RIA客户端,adobe在收购
> Macromedia公司后,继续强化了Flash的RIA应用。新的ActionScript 3.0将原先的Flash Remoting
> Components集成后,变成了一个大的flash.net Package。Flash可以适用多种网络技术,XML-RPC,
> SOAP,AMF-RPC.我们这篇主要说的是用Flash AMF-RPC的方式远程调用Django的服务,其它的方式我们以后再说。(例如简单的
> request和response功能)
>
> 既然是python社区,大家应该对Django都比较熟悉,我就不多提了。它是一个提供快速开发web框架。
>
> Flash 与 Django 的关系
> 因为Django不涉及前端,而只提供后台服务。Flash也同样,只需要处理前端,并与后台通迅。它们之间通过AMF-RPC的中间件方式直接调
> 用。
> AMF-RPC是使用AMF数据格式实现的远程方法调用,它是一个应用程序服务器网关,在Flash应用程序和远程服务之间提供一个相互通迅的网络通
> 道,在这个通道之间舆的是AMF格式的数据。它可以对数据类型自动转换,可以转换成ActionScript代码数据类型,也可以转成服务器程序数据类
> 型。AMF是一个二进制格式,将Flash程序和后台服务之间的通迅信息序列化,传输速度非常快。
>
> 安装环境
> 先装好Django
> 然后装上djangoamf-x.x.zip 的模块,这个一个日本人写的。完全由python写的,更新速度还挺快,就是文档还比较少。
> 这儿是网址
> http://djangoamf.sourceforge.jp/index.php?UserManual_en
>
> 创建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();
>
> 我做了一个例子,在Flash端直接输入python语句,然后直接在Flash端就可以看到服务器端返回的结果。
> 比如在服务器端输入
> a = 5
> b = 6
> a + b
> 结果为
> 5
> 6
> 11
> 这个例子可以用于调试服务器端的程序,直接查询设置服务器端的全局变量,或者执行另一个函数,import 另一个模块。
> 例子
> http://bbs.chinaunix.net/attachment.php?aid=212016
>
> --~--~---------~--~----~------------~-------~--~----~
> '''邮件来自Groups "python-cn"--China Py User Group
> 详情: http://groups-beta.google.com/group/python-cn
> 发言: python-cn在googlegroups.com
> 退订: python-cn-unsubscribe在googlegroups.com
> 维基: http://wiki.woodpecker.org.cn/moin/CPUG
> 同类列表: http://python.cn/mailman/listinfo/python-chinese
> 社区事务: http://groups.google.com/group/CPUG
> 北京事务: http://groups.google.com/group/bpug
> 东南事务: http://groups.google.com/group/cpug-eastchina
> '''
> -~----------~----~----~----~------~----~------~--~---
>
>


-- 
'''Time is unimportant, only life important!
过程改进的目标不是高品质产品,而是促生靠谱的人的组织!
'''http://zoomquiet.org
blog  @ http://blog.zoomquiet.org/pyblosxom/
wiki  @ http://wiki.woodpecker.org.cn/moin/ZoomQuiet
scrap @ http://floss.zoomquiet.org
share @ http://share.zoomquiet.org
douban@ http://www.douban.com/people/zoomq/
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Pls. usage OOo to replace M$ Office. http://zh.openoffice.org
Pls. usage 7-zip to replace WinRAR/WinZip.  http://7-zip.org
You can get the truely Freedom 4 software.

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年09月03日 星期一 19:35

beck917 beck917在gmail.com
星期一 九月 3 19:35:20 HKT 2007

ÍÛ...ºÃˬ°¡..ÊÇ·ñ¿ÉÒÔ¿¼ÂÇ·ÅÆúajax,¸ÄÓÃÕâ¸ö..ºÇºÇ

ÔÚ07-9-3£¬Zoom. Quiet <zoom.quiet在gmail.com> дµÀ£º
>
> Ç¿£¡£¡¹ûÈ»ÓÐרÃÅÖ§³ÖµÄPy Ä£¿é´æÔÚÍøÂçÖÐÄÄ¡­¡­¡­¡­
> ÊÕ¼ÁË£¡
> http://wiki.woodpecker.org.cn/moin/DjangoFlash
>
> On 9/3/07, Azureon <azureon.netspace在gmail.com> wrote:
> > ÏàÐÅ´ó¼Ò¶ÔÓÚFlash»¹ÊǺÜÊìϤµÄ£¬shockwave FlashµÄä¯ÀÀÆ÷²å¼þÔÚÍøÂçÉÏÒ²ÊÇÏ൱ÆÕ¼°¡£ËüµÄÓ¦Óúܹ㷺£¬²»½ö¿ÉÒÔ×÷Ϊä¯ÀÀÆ÷²å¼þ£¬»¹
> > ¿ÉÒÔ¶ÀÁ¢ÓÚ²¥·ÅÆ÷½øÐв¥·Å¡£´ÓÊÖ»úµ½Ì¨Ê½»ú£¬´ÓÓÎÏ·Ó¦Óõ½½ÌÓýÓ¦Óõ½¹¤×÷±¨¸æ¶¼¿ÉÒÔÓÃËüÀ´±íÏÖ¡£Ëü»¹ÊÇÒ»¸ö¼«¸»À©Õ¹ÐÔµÄRIA¿Í»§¶Ë£¬adobeÔÚÊÕ¹º
> > Macromedia¹«Ë¾ºó£¬¼ÌÐøÇ¿»¯ÁËFlashµÄRIAÓ¦Óá£ÐµÄActionScript 3.0½«Ô­ÏȵÄFlash Remoting
> > Components¼¯³Éºó£¬±ä³ÉÁËÒ»¸ö´óµÄflash.net Package¡£Flash¿ÉÒÔÊÊÓöàÖÖÍøÂç¼¼Êõ£¬XML-RPC,
> > SOAP,AMF-RPC.ÎÒÃÇÕâÆªÖ÷Ҫ˵µÄÊÇÓÃFlash AMF-RPCµÄ·½Ê½Ô¶³Ìµ÷ÓÃDjangoµÄ·þÎñ£¬ÆäËüµÄ·½Ê½ÎÒÃÇÒÔºóÔÙ˵¡£(ÀýÈç¼òµ¥µÄ
> > requestºÍresponse¹¦ÄÜ)
> >
> > ¼ÈÈ»ÊÇpythonÉçÇø£¬´ó¼ÒÓ¦¸Ã¶ÔDjango¶¼±È½ÏÊìϤ£¬ÎҾͲ»¶àÌáÁË¡£ËüÊÇÒ»¸öÌṩ¿ìËÙ¿ª·¢web¿ò¼Ü¡£
> >
> > Flash Óë Django µÄ¹ØÏµ
> > ÒòΪDjango²»É漰ǰ¶Ë£¬¶øÖ»Ìṩºǫ́·þÎñ¡£FlashҲͬÑù£¬Ö»ÐèÒª´¦Àíǰ¶Ë£¬²¢Óëºǫ́ͨѸ¡£ËüÃÇÖ®¼äͨ¹ýAMF-RPCµÄÖмä¼þ·½Ê½Ö±½Óµ÷
> > 
> > AMF-RPCÊÇʹÓÃAMFÊý¾Ý¸ñʽʵÏÖµÄÔ¶³Ì·½·¨µ÷Óã¬ËüÊÇÒ»¸öÓ¦ÓóÌÐò·þÎñÆ÷Íø¹Ø£¬ÔÚFlashÓ¦ÓóÌÐòºÍÔ¶³Ì·þÎñÖ®¼äÌṩһ¸öÏ໥ͨѸµÄÍøÂçͨ
> > µÀ£¬ÔÚÕâ¸öͨµÀÖ®¼äÓßµÄÊÇAMF¸ñʽµÄÊý¾Ý¡£Ëü¿ÉÒÔ¶ÔÊý¾ÝÀàÐÍ×Ô¶¯×ª»»£¬¿ÉÒÔת»»³ÉActionScript´úÂëÊý¾ÝÀàÐÍ£¬Ò²¿ÉÒÔת³É·þÎñÆ÷³ÌÐòÊý¾ÝÀà
> > ÐÍ¡£AMFÊÇÒ»¸ö¶þ½øÖƸñʽ£¬½«Flash³ÌÐòºÍºǫ́·þÎñÖ®¼äµÄͨѸÐÅÏ¢ÐòÁл¯£¬´«ÊäËٶȷdz£¿ì¡£
> >
> > °²×°»·¾³
> > ÏÈ×°ºÃDjango
> > È»ºó×°ÉÏdjangoamf-x.x.zip µÄÄ£¿é£¬Õâ¸öÒ»¸öÈÕ±¾ÈËдµÄ¡£ÍêÈ«ÓÉpythonдµÄ£¬¸üÐÂËÙ¶È»¹Í¦¿ì£¬¾ÍÊÇÎĵµ»¹±È½ÏÉÙ¡£
> > Õâ¶ùÊÇÍøÖ·
> > http://djangoamf.sourceforge.jp/index.php?UserManual_en
> >
> > ´´½¨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();
> >
> > ÎÒ×öÁËÒ»¸öÀý×Ó£¬ÔÚFlash¶ËÖ±½ÓÊäÈëpythonÓï¾ä£¬È»ºóÖ±½ÓÔÚFlash¶Ë¾Í¿ÉÒÔ¿´µ½·þÎñÆ÷¶Ë·µ»ØµÄ½á¹û¡£
> > ±ÈÈçÔÚ·þÎñÆ÷¶ËÊäÈë
> > a = 5
> > b = 6
> > a + b
> > ½á¹ûΪ
> > 5
> > 6
> > 11
> > Õâ¸öÀý×Ó¿ÉÒÔÓÃÓÚµ÷ÊÔ·þÎñÆ÷¶ËµÄ³ÌÐò£¬Ö±½Ó²éѯÉèÖ÷þÎñÆ÷¶ËµÄÈ«¾Ö±äÁ¿£¬»òÕßÖ´ÐÐÁíÒ»¸öº¯Êý£¬import ÁíÒ»¸öÄ£¿é¡£
> > Àý×Ó
> > http://bbs.chinaunix.net/attachment.php?aid=212016
> >
> > --~--~---------~--~----~------------~-------~--~----~
> > '''ÓʼþÀ´×ÔGroups "python-cn"--China Py User Group
> > ÏêÇé: http://groups-beta.google.com/group/python-cn
> > ·¢ÑÔ: python-cn在googlegroups.com
> > Í˶©: python-cn-unsubscribe在googlegroups.com
> > ά»ù: http://wiki.woodpecker.org.cn/moin/CPUG
> > ͬÀàÁбí: http://python.cn/mailman/listinfo/python-chinese
> > ÉçÇøÊÂÎñ: http://groups.google.com/group/CPUG
> > ±±¾©ÊÂÎñ: http://groups.google.com/group/bpug
> > ¶«ÄÏÊÂÎñ: http://groups.google.com/group/cpug-eastchina
> > '''
> > -~----------~----~----~----~------~----~------~--~---
> >
> >
>
>
> --
> '''Time is unimportant, only life important!
> ¹ý³Ì¸Ä½øµÄÄ¿±ê²»ÊÇ¸ßÆ·ÖʲúÆ·£¬¶øÊÇ´ÙÉú¿¿Æ×µÄÈ˵Ä×éÖ¯!
> '''http://zoomquiet.org
> blog  @ http://blog.zoomquiet.org/pyblosxom/
> wiki  @ http://wiki.woodpecker.org.cn/moin/ZoomQuiet
> scrap @ http://floss.zoomquiet.org
> share @ http://share.zoomquiet.org
> douban@ http://www.douban.com/people/zoomq/
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> Pls. usage OOo to replace M$ Office. http://zh.openoffice.org
> Pls. usage 7-zip to replace WinRAR/WinZip.  http://7-zip.org
> You can get the truely Freedom 4 software.
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070903/f5f7ae74/attachment-0001.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年09月04日 星期二 10:33

Tony longsiqing在gmail.com
星期二 九月 4 10:33:04 HKT 2007

ÕâÖÖ¼¼ÊõÄÜ×öµ½Õâ¸ö³Ì¶Èhttp://ihome.1001m.com,Ç¿°É...
²»¹ýÊÇÓÃjava+flash. ¸Ð¾õÓÃpythonÒ²ÍêÈ«¿ÉÒÔ...

ÔÚ07-9-3£¬beck917 <beck917在gmail.com> дµÀ£º
>
> ÍÛ...ºÃˬ°¡..ÊÇ·ñ¿ÉÒÔ¿¼ÂÇ·ÅÆúajax,¸ÄÓÃÕâ¸ö..ºÇºÇ
>
> ÔÚ07-9-3£¬Zoom. Quiet <zoom.quiet在gmail.com> дµÀ£º
> >
> > Ç¿£¡£¡¹ûÈ»ÓÐרÃÅÖ§³ÖµÄPy Ä£¿é´æÔÚÍøÂçÖÐÄÄ¡­¡­¡­¡­
> > ÊÕ¼ÁË£¡
> > http://wiki.woodpecker.org.cn/moin/DjangoFlash
> >
> > On 9/3/07, Azureon <azureon.netspace在gmail.com > wrote:
> > > ÏàÐÅ´ó¼Ò¶ÔÓÚFlash»¹ÊǺÜÊìϤµÄ£¬shockwave
> > FlashµÄä¯ÀÀÆ÷²å¼þÔÚÍøÂçÉÏÒ²ÊÇÏ൱ÆÕ¼°¡£ËüµÄÓ¦Óúܹ㷺£¬²»½ö¿ÉÒÔ×÷Ϊä¯ÀÀÆ÷²å¼þ£¬»¹
> > >
> > ¿ÉÒÔ¶ÀÁ¢ÓÚ²¥·ÅÆ÷½øÐв¥·Å¡£´ÓÊÖ»úµ½Ì¨Ê½»ú£¬´ÓÓÎÏ·Ó¦Óõ½½ÌÓýÓ¦Óõ½¹¤×÷±¨¸æ¶¼¿ÉÒÔÓÃËüÀ´±íÏÖ¡£Ëü»¹ÊÇÒ»¸ö¼«¸»À©Õ¹ÐÔµÄRIA¿Í»§¶Ë£¬adobeÔÚÊÕ¹º
> > > Macromedia¹«Ë¾ºó£¬¼ÌÐøÇ¿»¯ÁËFlashµÄRIAÓ¦Óá£ÐµÄActionScript 3.0½«Ô­ÏȵÄFlash Remoting
> > > Components¼¯³Éºó£¬±ä³ÉÁËÒ»¸ö´óµÄflash.net<http://%E5%8F%98%E6%88%90%E4%BA%86%E4%B8%80%E4%B8%AA%E5%A4%A7%E7%9A%84flash.net>Package¡£Flash¿ÉÒÔÊÊÓöàÖÖÍøÂç¼¼Êõ£¬XML-RPC,
> > > SOAP,AMF-RPC.ÎÒÃÇÕâÆªÖ÷Ҫ˵µÄÊÇÓÃFlashAMF-RPCµÄ·½Ê½Ô¶³Ìµ÷ÓÃDjangoµÄ·þÎñ£¬ÆäËüµÄ·½Ê½ÎÒÃÇÒÔºóÔÙ˵¡£(ÀýÈç¼òµ¥µÄ
> > > requestºÍresponse¹¦ÄÜ)
> > >
> > > ¼ÈÈ»ÊÇpythonÉçÇø£¬´ó¼ÒÓ¦¸Ã¶ÔDjango¶¼±È½ÏÊìϤ£¬ÎҾͲ»¶àÌáÁË¡£ËüÊÇÒ»¸öÌṩ¿ìËÙ¿ª·¢web¿ò¼Ü¡£
> > >
> > > Flash Óë Django µÄ¹ØÏµ
> > > ÒòΪDjango²»É漰ǰ¶Ë£¬¶øÖ»Ìṩºǫ́·þÎñ¡£FlashҲͬÑù£¬Ö»ÐèÒª´¦Àíǰ¶Ë£¬²¢Óëºǫ́ͨѸ¡£ËüÃÇÖ®¼äͨ¹ýAMF-RPCµÄÖмä¼þ·½Ê½Ö±½Óµ÷
> > > 
> > > AMF-RPCÊÇʹÓÃAMFÊý¾Ý¸ñʽʵÏÖµÄÔ¶³Ì·½·¨µ÷Óã¬ËüÊÇÒ»¸öÓ¦ÓóÌÐò·þÎñÆ÷Íø¹Ø£¬ÔÚFlashÓ¦ÓóÌÐòºÍÔ¶³Ì·þÎñÖ®¼äÌṩһ¸öÏ໥ͨѸµÄÍøÂçͨ
> >
> > >
> > µÀ£¬ÔÚÕâ¸öͨµÀÖ®¼äÓßµÄÊÇAMF¸ñʽµÄÊý¾Ý¡£Ëü¿ÉÒÔ¶ÔÊý¾ÝÀàÐÍ×Ô¶¯×ª»»£¬¿ÉÒÔת»»³ÉActionScript´úÂëÊý¾ÝÀàÐÍ£¬Ò²¿ÉÒÔת³É·þÎñÆ÷³ÌÐòÊý¾ÝÀà
> > > ÐÍ¡£AMFÊÇÒ»¸ö¶þ½øÖƸñʽ£¬½«Flash³ÌÐòºÍºǫ́·þÎñÖ®¼äµÄͨѸÐÅÏ¢ÐòÁл¯£¬´«ÊäËٶȷdz£¿ì¡£
> > >
> > > °²×°»·¾³
> > > ÏÈ×°ºÃDjango
> > > È»ºó×°ÉÏdjangoamf-x.x.zip µÄÄ£¿é£¬Õâ¸öÒ»¸öÈÕ±¾ÈËдµÄ¡£ÍêÈ«ÓÉpythonдµÄ£¬¸üÐÂËÙ¶È»¹Í¦¿ì£¬¾ÍÊÇÎĵµ»¹±È½ÏÉÙ¡£
> > > Õâ¶ùÊÇÍøÖ·
> > > http://djangoamf.sourceforge.jp/index.php?UserManual_en
> > >
> > > ´´½¨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();
> > >
> > > ÎÒ×öÁËÒ»¸öÀý×Ó£¬ÔÚFlash¶ËÖ±½ÓÊäÈëpythonÓï¾ä£¬È»ºóÖ±½ÓÔÚFlash¶Ë¾Í¿ÉÒÔ¿´µ½·þÎñÆ÷¶Ë·µ»ØµÄ½á¹û¡£
> > > ±ÈÈçÔÚ·þÎñÆ÷¶ËÊäÈë
> > > a = 5
> > > b = 6
> > > a + b
> > > ½á¹ûΪ
> > > 5
> > > 6
> > > 11
> > > Õâ¸öÀý×Ó¿ÉÒÔÓÃÓÚµ÷ÊÔ·þÎñÆ÷¶ËµÄ³ÌÐò£¬Ö±½Ó²éѯÉèÖ÷þÎñÆ÷¶ËµÄÈ«¾Ö±äÁ¿£¬»òÕßÖ´ÐÐÁíÒ»¸öº¯Êý£¬import ÁíÒ»¸öÄ£¿é¡£
> > > Àý×Ó
> > > http://bbs.chinaunix.net/attachment.php?aid=212016
> > >
> > > --~--~---------~--~----~------------~-------~--~----~
> > > '''ÓʼþÀ´×ÔGroups "python-cn"--China Py User Group
> > > ÏêÇé: http://groups-beta.google.com/group/python-cn
> > > ·¢ÑÔ: python-cn在googlegroups.com
> > > Í˶©: python-cn-unsubscribe在googlegroups.com
> > > ά»ù: http://wiki.woodpecker.org.cn/moin/CPUG
> > > ͬÀàÁбí: http://python.cn/mailman/listinfo/python-chinese
> > > ÉçÇøÊÂÎñ: http://groups.google.com/group/CPUG
> > > ±±¾©ÊÂÎñ: http://groups.google.com/group/bpug
> > > ¶«ÄÏÊÂÎñ: http://groups.google.com/group/cpug-eastchina
> > > '''
> > > -~----------~----~----~----~------~----~------~--~---
> > >
> > >
> >
> >
> > --
> > '''Time is unimportant, only life important!
> > ¹ý³Ì¸Ä½øµÄÄ¿±ê²»ÊÇ¸ßÆ·ÖʲúÆ·£¬¶øÊÇ´ÙÉú¿¿Æ×µÄÈ˵Ä×éÖ¯!
> > '''http://zoomquiet.org
> > blog  @ http://blog.zoomquiet.org/pyblosxom/
> > wiki  @ http://wiki.woodpecker.org.cn/moin/ZoomQuiet
> > scrap @ http://floss.zoomquiet.org
> > share @ http://share.zoomquiet.org
> > douban@ http://www.douban.com/people/zoomq/
> > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > Pls. usage OOo to replace M$ Office. http://zh.openoffice.org
> > Pls. usage 7-zip to replace WinRAR/WinZip.   http://7-zip.org
> > You can get the truely Freedom 4 software.
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese在lists.python.cn
> > Subscribe: send subscribe to python-chinese-request在lists.python.cn
> > Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> > Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
>
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070904/eeb6a046/attachment-0001.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年09月04日 星期二 20:18

John fractal johnfractal在gmail.com
星期二 九月 4 20:18:21 HKT 2007

xml-rpc,json-rpc,amf-rpc其实没有什么本质上的不同哦,只是用了不同的编码方式和风格而已拉~

在07-9-4,Tony <longsiqing在gmail.com> 写道:
>
> 这种技术能做到这个程度http://ihome.1001m.com,强吧.>
> ..
> 不过是用java+flash. 感觉用python也完全可以...
>
> 在07-9-3,beck917 < beck917在gmail.com> 写道:
> >
> > 哇...好爽啊..是否可以考虑放弃ajax,改用这个..呵呵
> >
> > 在07-9-3,Zoom. Quiet <zoom.quiet在gmail.com> 写道:
> > >
> > > 强!!果然有专门支持的Py 模块存在网络中哪…………
> > > 收录了!
> > > http://wiki.woodpecker.org.cn/moin/DjangoFlash
> > >
> > > On 9/3/07, Azureon <azureon.netspace在gmail.com > wrote:
> > > > 相信大家对于Flash还是很熟悉的,shockwave
> > > Flash的浏览器插件在网络上也是相当普及。它的应用很广泛,不仅可以作为浏览器插件,还
> > > >
> > > 可以独立于播放器进行播放。从手机到台式机,从游戏应用到教育应用到工作报告都可以用它来表现。它还是一个极富扩展性的RIA客户端,adobe在收购
> > > > Macromedia公司后,继续强化了Flash的RIA应用。新的ActionScript 3.0将原先的Flash Remoting
> > > > Components集成后,变成了一个大的flash.net
> > > <http://%E5%8F%98%E6%88%90%E4%BA%86%E4%B8%80%E4%B8%AA%E5%A4%A7%E7%9A%84flash.net>Package。Flash可以适用多种网络技术,XML-RPC,
> > > > SOAP,AMF-RPC.我们这篇主要说的是用FlashAMF-RPC的方式远程调用Django的服务,其它的方式我们以后再说。(例如简单的
> > > > request和response功能)
> > > >
> > > > 既然是python社区,大家应该对Django都比较熟悉,我就不多提了。它是一个提供快速开发web框架。
> > > >
> > > > Flash 与 Django 的关系
> > > >
> > > 因为Django不涉及前端,而只提供后台服务。Flash也同样,只需要处理前端,并与后台通迅。它们之间通过AMF-RPC的中间件方式直接调
> > > > 用。
> > > >
> > > AMF-RPC是使用AMF数据格式实现的远程方法调用,它是一个应用程序服务器网关,在Flash应用程序和远程服务之间提供一个相互通迅的网络通
> > > >
> > > 道,在这个通道之间舆的是AMF格式的数据。它可以对数据类型自动转换,可以转换成ActionScript代码数据类型,也可以转成服务器程序数据类
> > > > 型。AMF是一个二进制格式,将Flash程序和后台服务之间的通迅信息序列化,传输速度非常快。
> > > >
> > > > 安装环境
> > > > 先装好Django
> > > > 然后装上djangoamf-x.x.zip 的模块,这个一个日本人写的。完全由python写的,更新速度还挺快,就是文档还比较少。
> > > > 这儿是网址
> > > > http://djangoamf.sourceforge.jp/index.php?UserManual_en
> > > >
> > > > 创建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();
> > > >
> > > > 我做了一个例子,在Flash端直接输入python语句,然后直接在Flash端就可以看到服务器端返回的结果。
> > > > 比如在服务器端输入
> > > > a = 5
> > > > b = 6
> > > > a + b
> > > > 结果为
> > > > 5
> > > > 6
> > > > 11
> > > > 这个例子可以用于调试服务器端的程序,直接查询设置服务器端的全局变量,或者执行另一个函数,import 另一个模块。
> > > > 例子
> > > > http://bbs.chinaunix.net/attachment.php?aid=212016
> > > >
> > > > --~--~---------~--~----~------------~-------~--~----~
> > > > '''邮件来自Groups "python-cn"--China Py User Group
> > > > 详情: http://groups-beta.google.com/group/python-cn
> > > > 发言: python-cn在googlegroups.com
> > > > 退订: python-cn-unsubscribe在googlegroups.com
> > > > 维基: http://wiki.woodpecker.org.cn/moin/CPUG
> > > > 同类列表: http://python.cn/mailman/listinfo/python-chinese
> > > > 社区事务: http://groups.google.com/group/CPUG
> > > > 北京事务: http://groups.google.com/group/bpug
> > > > 东南事务: http://groups.google.com/group/cpug-eastchina
> > > > '''
> > > > -~----------~----~----~----~------~----~------~--~---
> > > >
> > > >
> > >
> > >
> > > --
> > > '''Time is unimportant, only life important!
> > > 过程改进的目标不是高品质产品,而是促生靠谱的人的组织!
> > > '''http://zoomquiet.org
> > > blog  @ http://blog.zoomquiet.org/pyblosxom/
> > > wiki  @ http://wiki.woodpecker.org.cn/moin/ZoomQuiet
> > > scrap @ http://floss.zoomquiet.org
> > > share @ http://share.zoomquiet.org
> > > douban@ http://www.douban.com/people/zoomq/
> > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > > Pls. usage OOo to replace M$ Office. http://zh.openoffice.org
> > > Pls. usage 7-zip to replace WinRAR/WinZip.   http://7-zip.org
> > > You can get the truely Freedom 4 software.
> > > _______________________________________________
> > > python-chinese
> > > Post: send python-chinese在lists.python.cn
> > > Subscribe: send subscribe to python-chinese-request在lists.python.cn
> > > Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> > > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> >
> >
> >
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese在lists.python.cn
> > Subscribe: send subscribe to python-chinese-request在lists.python.cn
> > Unsubscribe: send unsubscribe to
> > python-chinese-request在lists.python.cn
> > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> >
>
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: http://python.cn/pipermail/python-chinese/attachments/20070904/fec9efbd/attachment-0001.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号