| Àá¿Ê Àá¿ÊÀº Python¿¡¼ Ajax ÀÀ¿ë ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö ÀÖµµ·Ï ¼³°èµÈ ÅøŶ ¹× ¶óÀ̺귯¸®ÀÔ´Ï´Ù. |
Áö±Ý ´Ù¿î·Îµå |
Àá¿Ê ¼øÀ§ ¹× ¿ä¾à
- °Ô½ÃÀÚ À̸§:
- James Tauber
- °Ô½ÃÀÚ À¥»çÀÌÆ®:
- http://jtauber.com/pyso
Àá¿Ê ű×
Àá¿Ê ¼³¸í
Àá¿ÊÀº ÆÄÀ̽㿡¼ Ajax ÀÀ¿ë ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö ÀÖµµ·Ï ¼³°èµÈ ÅøŶ ¹× ¶óÀ̺귯¸®ÀÔ´Ï´Ù. Àá¿ÊÀº ÆÄÀ̽㿡¼ Ajax ÀÀ¿ë ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö ÀÖµµ·Ï ¼³°èµÈ ÅøŶ ¹× ¶óÀ̺귯¸®ÀÔ´Ï´Ù. Àá¿ÊÀº Java.ike GWT¿¡ ´ëÇØ µ¿ÀÏÇÑ ÀÛ¾÷À» ¼öÇàÇÏ´Â Google GWT¸¦ ±â¹ÝÀ¸·ÎÇÕ´Ï´Ù. Pajamas´Â ÀÀ¿ë ÇÁ·Î±×·¥ ¹× ¶óÀ̺귯¸® (UI À§Á¬ ¹× DOM Ŭ·¡½º Æ÷ÇÔ)¸¦ JavaScript·Î ¹ø¿ªÇÏ°í ÇØ´ç JavaScript ÄÚµåÀÇ Æ÷ÀåÀ» Æ÷ÇÔÇÕ´Ï´Ù. Àá¿Ê¿¡ Æ÷ÇÔ µÈ µÎ °¡Áö ÇÙ½É °³¹ßÀÚ µµ±¸°¡ ÀÖ½À´Ï´Ù. Pyjs´Â ÆÄÀ̽ã Äڵ带 ÆÄÀ̽ã Ãß»ó ±¸¹® Æ®¸®¸¦ °È°í JavaScript¸¦ »ý¼ºÇÏ¿© Python Äڵ带 JavaScript·Î ¹ø¿ªÇÏ°í, ¸¹Àº °æ¿ì¿¡, ³»ÀåÇü ÆÄÀ̽ã À¯ÇüÀº »ç¿ëÀÚ Á¤ÀÇ JavaScript ±¸ÇöÀÌ ÇÊ¿äÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, Python ¸ñ·ÏÀº JavaScript ¹è¿°ú À¯»çÇÏÁö¸¸ Python ¸ñ·ÏÀº Append¿Í °°Àº ¸Þ¼µå¸¦ ±¸ÇöÇÏ´Â »ç¿ëÀÚ Á¤ÀÇ °³Ã¼·Î º¯È¯µË´Ï´Ù. PYJSÀÇ ¹ø¿ª¿¡ ÇÊ¿äÇÑ »ç¿ëÀÚ Á¤ÀÇ °´Ã¼´Â pyjslib.like GWT¶ó´Â ¶óÀ̺귯¸®¿¡ Á¤ÀǵǾî ÀÖÀ¸¸ç Àá¿ÊÀº UI À§Á¬ ¼¼Æ®»Ó¸¸ ¾Æ´Ï¶ó DOM Á¶ÀÛ ¶óÀ̺귯¸®¿Í ÇÔ²² Á¦°øµË´Ï´Ù. ÀÌ·¯ÇÑ ¶óÀ̺귯¸®´Â ÆÄÀ̽ãÀ¸·Î ÀÛ¼ºµÇÁö¸¸ ´Ù¸¥ ¸ðµç °Í°ú ¸¶Âù°¡Áö·Î ¹èÆ÷¸¦ À§ÇØ JavaScript·Î ¹ø¿ªµË´Ï´Ù. °³º° ±¸¼º ¿ä¼ÒÀÇ Àü¹ÝÀûÀÎ ¹ø¿ªÀº ÇÊ¿äÇÑ º¸ÀÏ·¯ Ç÷¹ÀÌÆ® Äڵ带 »ý¼ºÇÏ´Â ºôµå¿¡¼ °ü¸®ÇÕ´Ï´Ù. °á°ú´Â À¥ ¼¹ö¿¡¼ Á¦°ø ÇÒ ¼öÀÖ´Â .html ¹× .js ÆÄÀÏÀÇ ÁýÇÕÀÔ´Ï´Ù. Ŭ¶óÀ̾ðÆ® - ¼¹ö ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼ Åë½ÅÀ»À§ÇÑ ¼¹ö Ãø ÄÚµå¿Í °°Àº ¿©±â¿¡¼ ´Ù·çÁö ¾ÊÀº ´Ù¸¥ ±¸¼º ¿ä¼Ò´Â ´Ù¸¥ ±¸¼º ¿ä¼ÒÀÔ´Ï´Ù. ÀÌ ¸±¸®½º¿¡¼´Â »õ·Î¿î ±â´É : ¡¤ Æ˾÷ÆÇ¿¡¼ ºñ ¸ð´ÞÀÌ ÇÊ¿ä¾ø´Â °íÁ¤ ÀÚµ¿ ¿Ï¼º (ºñ ¸ð´Þ ´ëÈ »óÀÚ¸¦ ±¸ÇöÇϱâÀ§ÇÑ lovelysystem ´öºÐ¿¡ ÀÚµ¿ ¿Ï¼ºÀ» ¼öÁ¤ÇÒ ¼ö ¾øÀ½) ¡¤ ¸ÞŸ Ŭ·¡½º "À¯Çü"±â´ÉÀÇ ±¸ÇöÀÌ Ãß°¡µÇ¾ú½À´Ï´Ù ¡¤ ¸ðµâ°ú µ¿ÀÏÇÑ Å¬·¡½º°¡ ¾Æ´Ñ ½Ì±Û Åæ ¸ðµâÀ» ¸¸µé¾ú½À´Ï´Ù. Mouselistener, À̺¥Æ® ¹× ÃÊÁ¡°ú ¸¶Âù°¡Áö·Î. ¡¤ ¸¶¿ì½º ¿À¸¥ÂÊ ¹öÆ°À» Ŭ¸¯ ÇÒ ¼öÀÖ´Â ÄÁÅؽºÆ® ¸Þ´º°¡ Ãß°¡µÇ°í kitchensink menus.pyÀÇ ¿¹Á¦¸¦ Ãß°¡ÇÏ¿© ¼³Á¤ÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÝ´Ï´Ù. ¡¤ ÆÄÀ̽㠽ºÆÄÀÌ´õÅ°¸¦ ½ÇÇè Ç÷§ÆûÀ¸·Î Ãß°¡ ÇÑ Pyv8Run.py¿Í Á¤È®È÷ pysmrun.py°¡ ÀÖ½À´Ï´Ù. ¡¤ ÃÖ»óÀ§ ¼öÁØÀÇ Àü¿ª º¯¼ö ¹× ÃÖ»óÀ§ ±â´É, ÀÌÁ¦ ¸ðµâ¿¡¼ ¿Ã¹Ù¸£°Ô ¹üÀ§¸¦ ¿Ã¹Ù¸£°Ô ¹üÀ§¸¦ ÁöÁ¤ÇÕ´Ï´Ù (À̸¦ À§ÇØ È£¼¼ ´öºÐ¿¡) ¡¤ ¹®ÀÚ¿ »ó¼ö°¡ JavaScript ±âº» ¹®ÀÚ¿ À¯ÇüÀÇ ÇÁ·ÎÅä¿¡ Ãß°¡ µÈ __iter__ ¸Þ¼Òµå¸¦ °®´Â ¹®ÀÚ¿ ()ÀÇ ÀνºÅϽº·Î ¸®Åϵ˴ϴÙ. ¡¤ TypeError´Â ¿À·ù ()¿¡¼ ÀÚ¹Ù ½ºÅ©¸³Æ® ÇÁ·ÎÅä°¡ ¾Æ´Ñ BaseException¿¡¼ »ó¼ÓÇÕ´Ï´Ù. TypeError´Â ÀÌÁ¦ ¸Þ½ÃÁö¿Í ÇÔ²² ¿¹¿Ü·Î ¹ß»ýÇÒ ¼ö ÀÖ½À´Ï´Ù. ¡¤ == ºñ±³ »ç¿ë __eq__À» »ç¿ëÇϸé __cmp__À» »ç¿ëÇÒ ¼öÀÖ´Â °æ¿ì __cmp__À» »ç¿ëÇÕ´Ï´Ù. libtestÀÇ ¸ñ·ÏÀ» ºñ±³ÇÏ¿© ¹ö±×¸¦ ¼öÁ¤ÇÕ´Ï´Ù. __eq__ÀÌ "__e"¿Í ÇÔ²² "is"¿Í ¸¹Àº ¼öÀÇ ¼ýÀÚ "=="ºñ±³¸¦ ´ëüÇϹǷΠȿÀ²¼º (È¿À²¼º). ¡¤ ÇÔ¼ö¿¡¼ * args È£Ãâ¿¡ ´ëÇÑ Áö¿ø Ãß°¡ : ÀÌÀü¿¡´Â vergs°¡ ´øÁ®Áý´Ï´Ù. ¡¤ ¸ñ·Ï¿¡¼ ±¸º° ÇÒ ¼ö ÀÖµµ·Ï ¸ñ·Ï¿¡¼ »ó¼ÓµÇ±âº¸´Ù´Â Æ©ÇÃÀ» Æ©Ç÷Π¸¸µé¾ú½À´Ï´Ù. __cmp__ ÀÌÁ¦ Æ©ÇÃÀÌ ¿Ã¹Ù¸£°Ô ½ÇÆÐÇÕ´Ï´Ù. ¡¤ Ç¥ÁØ ÆÄÀ̽ã (Python ./libTest.py)¿¡¼ ½ÇÇàÇÒ ¼ö ÀÖµµ·Ï ¿¹Á¦ / libtest¸¦ ´Ù½Ã ÀÛ¼ºÇϽʽÿÀ. ÀÌ´Â PYJS¸¦ Ç¥ÁØ ÆÄÀ̽㿡 ºñ±³ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¡¤ ¸Þ¼Òµå Ãß°¡ pyjslib.list·Î È®ÀåµË´Ï´Ù ¡¤ ³»Àå¿¡ Ç÷ÎÆ®¸¦ Ãß°¡ÇÕ´Ï´Ù ¡¤ examples / libtest / write.py¸¦ ±â¹ÝÀ¸·Î pyjamas.log¸¦ Ãß°¡ÇϽʽÿÀ. ¡¤ ³»Àå ±â´ÉÀÌ µî·Ï µÈ ±â´É 'CMP'. ÀÌ¹Ì ±¸ÇöµÇ¾úÁö¸¸ pyjs.py¿¡ µî·ÏµÇÁö ¾Ê¾Ò½À´Ï´Ù ¡¤ PRINT ¹®À» Á¦°ÅÇÏ´Â °á°ú°¡ Ãß°¡µÇ´Â ¿É¼ÇÀ» Ãß°¡Çß½À´Ï´Ù. ÀÌ°ÍÀº ´õ¿í Çâ»ó µÉ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ÁÖÀåÀÌ ±¸ÇöµÇ¸é ¡¤ Mozilla°¡ °íÁ¤ µÈ Mozilla "Permission Denied"Dom.isorhaschild ¹ö±× ¡¤ pyjslib.dict´Â ÀÌÁ¦ Çؽà ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© ³»ºÎÀûÀ¸·Î Å°¸¦ »ý¼ºÇϹǷΠPython°ú °°Àº Å°·Î °´Ã¼¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. dictsÀÇ Á¦ÇÑ »çÇ×Àº ¿¹Á¦ / libtest / dicttest.py Àбâ
Àá¿Ê °ü·Ã ¼ÒÇÁÆ®¿þ¾î