Åê¹ÆÎý½¬(73, 0)
 ¾ã³²¾ðÊó(18, 0)
 »¨ÃÌ(871, 0)
 ¶È̳Êó¹ð(284, 0)
 Vineseed¤ËZope(623, 0)
 ImgBBS(14, 0)
 ¥á¥â(32, 0)
 eclipse(6, 0)
¡¡¡¡

¥á¥â

zope-memo ¤ÎÍ­±×¤Ê¾ðÊó¤ä¥á¥â¡õ³Ð½ñ

Åê¹Æ²èÌ̤Îɽ¼¨¤ò 

¸¡º÷ʸ»ú 

¤ªÌ¾Á°  EMail 
 º¸¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤ë¿ôÃͤòÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ 

0032 0023 0013 0003

13 kiyo 2003ǯ12·î 2Æü 16»þ23ʬ Id=kiyo

SHA ¤Ç¤Î°Å¹æ²½
import sha, binascii
def sha_passwd(passwd):
    """
    """
    return binascii.b2a_base64(sha.new(passwd).digest())[:-1]
 
¤³¤ì¸Æ¤Ó½Ð¤»¤Ð°Å¹æ²½¤Ç¤­¤ë¡£´Êñ¤À¤¢



12 kiyo 2003ǯ11·î26Æü 1»þ 1ʬ Id=kiyo

UTF-8 ¤Î¥á¥â ¸å¤Û¤É¤ªÊÙ¶¯ÍѤˡª¡ª
­¡UTF-8
¡¡UTF-8¤Ï¡¤4¥Ð¥¤¥È¤ÎUCS-4¤ò1¡Á6¥Ð¥¤¥È¤Þ¤Ç¤Î²ÄÊÑŤˤ¹¤ë¤â¤Î¤Ç¡¤¤ª¤â¤Ë¥Ç¡¼¥¿¤Î°µ½Ì¤òÌÜŪ¤È¤·¤Æ¤¤¤ë¡£
¡¡¤Þ¤º¡¤ISO 10646¤Î¡Ö0000 0000¡Á0000 007F¡×¡Ê16¿Êɽµ­¡Ë¤Þ¤Ç¤ò¡Ö0xxx xxxx¡×¡Ê0¤È1¤Î¥Ó¥Ã¥Èɽµ­¡§¤³¤³¤Ç¤Ï1¥Ð¥¤¥È¤Ë¤Ê¤ë¡Ë¤Çɽ¤ï¤¹¡£
¡¡¼¡¤Î¡Ö0000 0080¡Á0000 07FF¡×¤Þ¤Ç¤Ï¡¤1¥Ð¥¤¥ÈÌܤò110¡¤2¥Ð¥¤¥ÈÌܤò10¤Ç»Ï¤á¤ë¡Ö1110 xxxxx 10xxx xxx¡×¡Ê2¥Ð¥¤¥È¡Ë¤Çɽ¤ï¤¹¡£
¡¡Æ±Íͤ˼¡¤Î¡Ö0000 0800¡Á0000 FFFF¡×¤Ï¡Ö1110 xxxx 10xx xxxx 10xx xxxx¡×¡Ê3¥Ð¥¤¥È¡Ë¤Çɽ¤ï¤¹¡£
¡¡¤³¤¦¤¹¤ì¤ÐASCIIʸ»ú¤Ï1¥Ð¥¤¥È¤ÇºÑ¤ß¡¤¡Ö0000 0080¡Á0000 07FF¡Ê¤«¤Ê¤ËÁêÅö¤¹¤ëÉôʬ¡Ë¡×¤ÏÆüËܸì¤Î¤Ò¤é¤¬¤Ê¡¦¥«¥¿¥«¥Ê¤ä¥è¡¼¥í¥Ã¥Ñ¤Îʸ»ú¤Þ¤ÇÆþ¤ì¤Æ2¥Ð¥¤¥È¤ÇºÑ¤à¡£¤µ¤é¤Ë3¥Ð¥¤¥È¤Ç´Á»ú¤ò´Þ¤á¤¿BMP¤¬Á´Éô¼ý¤Þ¤ë¤³¤È¤Ë¤Ê¤ë¡£
¡¡UTF-8¤Ï¡¤½¾Íè¤ÎASCII¤È´Êñ¤Ë¥³¥ó¥Ð¡¼¥È¤Ç¤­¤ÆÊØÍø¤Ê¤Î¤ÇJava¤ÎÆâÉôŪ¤Ê½èÍý¤Ê¤É¤Ç¤¹¤Ç¤Ë»È¤ï¤ì¤Æ¤¤¤ë¡£ÌäÂê¤Ï¡¤´Á»ú¤ÏUCS-2¤Ç¤Ï2¥Ð¥¤¥È¤Ê¤Î¤ËUTF-8¤Ë¤¹¤ë¤È3¥Ð¥¤¥È¤Ë¤Ê¤Ã¤Æ°µ½Ì¤Ë¤Ê¤é¤Ê¤¤²ÄǽÀ­¤¬¤¢¤ë¤³¤È¤Ç¤¢¤ë¡£¤³¤Î¤¿¤áUTF-8¤Ï±Ñ¸ì·÷¤Î¤¿¤á¤ÎÊýË¡¤È¤¤¤Ã¤Æ¤è¤¤¤È»×¤¦¡£



11 kiyo 2003ǯ11·î18Æü 23»þ52ʬ Id=kiyo

¥Ý¥¹¥°¥ì( psycopg )ÈǤǤλö¤À¤±¤É¡¢ ZSQLMethod Æâ¤ËÄ̾ï½ñ¤«¤Ê¤¤ SQL ʸ¤ò½ñ¤¤¤¿»þ¤ËÊѤʸ½¾Ý
create table hoge (
a1 SERIAL ¤È¤«¡¢
a2 bytea ¤È¤«
)
¤¬¤¢¤ë¾ì¹ç¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºîÀ®Ä¾¸å¤Ç¤Ï¤¦¤Þ¤¯¥Æ¡¼¥Ö¥ë¤¬ºîÀ®¤Ç¤­¤ë¤Î¤À¤¬¡¢
°ìöºï½ü¤·¤¿¤é¡¢Æ±¤¸ SQL ʸ¤Ç¤â¥¨¥é¡¼¤Ë¤Ê¤ë¡£
¤Ê¤ó¤Ç¤À¤í¤¦¡¢
¤Ê¤ó¤Ç¤À¤í¤¦¡Á¡¢¤Ê¤ó¤Ç¤À¤í¤¦¡£



10 kiyo 2003ǯ11·î18Æü 23»þ42ʬ Id=kiyo

psycopg ¤Ç blob ¤ÎInsert into ¤Ë²¿ÅÙ¤ä¤Ã¤Æ¤â¼ºÇÔ¤¹¤ë¡£
Ʊ¤¸¤ä¤êÊý¤Ç Firebird ¤Ï²¿¤È¤â¤Ê¤¤¡£
¤Ê¤¼¡©¤Ã¤È»×¤Ã¤¿¤é
¤­¤Á¤ó¤È·¿ÊÑ´¹(int ¤Ç°ú¤Ã¤«¤«¤Ã¤Æ¤¤¤¿)¤·¤Æ¤¤¤Ê¤«¤Ã¤¿¤Î¤¬¸¶°ø¤À¤Ã¤¿¡£
 
¶µ·±¡§
DBAPI ¤Ç¤Î SQL ʸ¤Ï ·¿ÊÑ´¹¤Ï¤È¤Ã¤Æ¤â½ÅÍפÀ¡£
¤â¤Ã¤È¤â¸úΨŪ¤Ê¤ä¤êÊý¤Ï¡¢°ú¿ô¤ò¤â¤é¤Ã¤¿¥á¥¾¥Ã¥È¦¤Ç·¿ÊÑ´¹¤¹¤ë»ö
¤³¤ì¤«¤é¤Ï¤³¤Î¤ä¤êÊý¤ò½¬´·ÉÕ¤±¤ë»ö¤Ë¤·¤è¤¦¡£



9 kiyo 2003ǯ11·î11Æü 19»þ22ʬ Id=kiyo

¥Õ¥©¡¼¥à¤Ë¥Ü¥¿¥ó¤òÊ£¿ô¸ÄºîÀ®¤·¤Æ¤½¤ì¤¾¤ì¤Ë¥³¥Þ¥ó¥É¤ò½ñ¤¯¾ì¹ç
-------
<form method="POST">
<input type="submit" name="hoge1:method" value="hoge1">
<input type="submit" name="hoge2:method" value="hoge2">
</form>
---------
¤Î¤è¤¦¤Ëº£¤Þ¤Ç½ñ¤¤¤Æ¤¤¤¿¤Î¤Ç¤¹¤¬¡¢
ËÜÆü²¿ÅÙ¸«Ä¾¤·¤·¤Æ¤â¥³¥Þ¥ó¥É¤ØÈô¤ó¤Ç¤¯¤ì¤Ê¤«¤Ã¤¿¡£
º£¤Þ¤Ç¤È°ã¤¦¤È¸À¤¨¤Ð¥Õ¥ì¡¼¥à¤ò»È¤Ã¤¿»ö¤À¤±¤À¤¬¡¢
¥Õ¥ì¡¼¥à»È¤¦¤ÈÉÔ¶ñ¹ç¤Ç¤ë¤Î¤«¤Ê¤¢¡©
¿§¡¹»î¤·¤¿·ë²Ì
-------
<form action="./" method="POST">
<input type="submit" name="hoge1:method" value="hoge1">
<input type="submit" name="hoge2:method" value="hoge2">
</form>
---------
action ¤òÁÞÆþ¤¹¤ë¤È»×¤Ã¤¿¤è¤¦¤Ëư¤¤¤Æ¤¯¤ì¤¿¡£
action="aho" ¤È¤«½ñ¤¤¤Æ hoge1 ¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È xxx/aho/hoge1
¤È¤Ê¤Ã¤¿»ö¤«¤é¡¡action="./" ¤Ê¤é¤É¤¦¤À¡£¤Ã¤Æ´¶¤¸¤Ç¤ä¤Ã¤¿¤Î¤Ç¤·¤¿¡£
 
# ÃΤäƤ¤¤ë¿Í¤Ï¾Ð¤Ã¤Æ¤¤¤ë¤À¤í¤¦¤Ê¤¢
# »ä¤Ï¤³¤ì¤Ë´Ý°ìÆüÈñ¤ä¤·¤Æ¤·¤Þ¤Ã¤¿¡£



8 kiyo 2003ǯ 9·î 9Æü 13»þ 4ʬ Id=kiyo

Firebird(interbase) ¤Ë¤Æ¡¢¥Æ¡¼¥Ö¥ë¤òºîÀ®¤¹¤ë¾ì¹çÄÌ¾ï¥Æ¡¼¥Ö¥ë̾¡¢¥Õ¥£¡¼¥ë¥É̾¤ÏÂçʸ»ú¤Ë¤Ê¤ë¡£
 
create table "hogetable"(
"hoge1" integer NOT NULL,
"hogebody" varchar(128) character set EUCJ_0208,
PRIMARY KEY("hoge1")
)
¤Î¤è¤¦¤Ë""¤Ç¤¯¤¯¤ë¤È¾®Ê¸»ú¤ÇÅÐÏ¿¤µ¤ì¤ë»ö¤òȯ¸«¤·¤¿¡£
¤·¤«¤·¡¢Python Database API¤Ë¤Æ¡¡Insert¡¡Åù½èÍý¤·¤è¤¦¤È¤¹¤ë¤È¡¢¤½¤ó¤Ê¥Æ¡¼¥Ö¥ë̾¤Ï¸«¤Ä¤«¤é¤Ê¤¤¤È¤Ç¤ë¡£
¸¶°øÉÔÌÀ¤À¤¬¡¢°ì±þ¥á¥â



7 kiyo 2003ǯ 8·î11Æü 13»þ38ʬ Id=kiyo

LocalFS ¤¬¡¢context.manage_addProduct['LocalFS'].manage_addLocalFS(***)¤Ç¥¨¥é¡¼¤¬¤Ç¤ë¡£
 
Âкö¡§
LocalFS ¥Õ¥©¥ë¥À¤ÎLocalFS.py ¤ò³«¤­°Ê²¼¤Î¤è¤¦¤Ë½¤Àµ¤¹¤ë¡£
 
1351: ob = LocalFS(id, title, basepath, username, password)
1352: self._setObject(id, ob)
1353: if REQUEST is not None:(¤³¤ì¤ò²Ã¤¨¤ë¡Ë
1354: ¡¡¡¡return self.manage_main(self, REQUEST)
 
Íýͳ¡§Zope Bible P195 ¤Çȯ¸«¡£
context.manage_addProduct['LocalFS'].manage_addLocalFS(***)
¤Ç¸Æ¤Ó½Ð¤¹¤È¡¢REQUEST ¤Ë None ¤¬ÅϤµ¤ì¤ë°Ù¤À¤í¤¦
Ê̤Υץí¥À¥¯¥È¤Ç¤â¤¢¤ë¤«¤âÃΤì¤Ê¤¤¡Ê¤«¤Ê¡©¡Ë




6 kiyo 2003ǯ 8·î 7Æü 18»þ29ʬ Id=kiyo

¤Ä¤¤¤Ç¤Ë³Ð½ñ¤Ç¡£¡£¡£
¤¢¤ë¥Õ¥©¥ë¥À¤ÎÃæ¤Ë¤¢¤ë PythonScript ¤ò¤¹¤Ù¤Æ¼Â¹Ô¤¹¤ë¤Ë¤Ï¡¢
---
<dtml-in objectValues>
  <dtml-if "meta_type=='Script (Python)'">
    <dtml-call "_['sequence-item']">
  </dtml-if>
</dtml-in>
---
»î¤·¤Æ¤¤¤Ê¤¤¤±¤É¡¢Â¿Ê¬¤³¤ì¤Ç¤â£Ï£Ë¤À¤í¤¦¡£
---
<dtml-in "objectValues('Script (Python)')">
 
  <dtml-call "_['sequence-item']">
 
</dtml-in>
---




5 kiyo 2003ǯ 8·î 7Æü 17»þ39ʬ Id=kiyo

º£Æü¤â manage_XXX ¤Î¥Í¥¿
ZSQLMethod ¤Î¥×¥í¥Ñ¥Æ¥£¤Ë Advances -> Maximum rows to retrieve(¼ÂÂÎ¤Ï max_rows ¤À¤Ã¤¿) ¤Ï
context.manage_advanced(max_rows,max_cache,cache_time,class_name,class_file)
¤ÇÀßÄê²Äǽ¤À¤Ã¤¿¡£
 
ZOPE_HOME/lib/python/Shared/DC/ZRDB/DA.py ¤Ç¸«¤Ä¤±¤¿¡£
 
# ZSQLMethod ¥×¥í¥Ñ¥Æ¥£ Advances -> Maximum rows to retrieve¡¡¤Î»ö¤â˺¤ì¤Ê¤¤Æâ¤Ë½ñ¤¤¤Æ¤ª¤³¤¦
# Firebird, PostgreSQL ¤Ï max_rows ¤ÎÃͤò¥¼¥í¤Ë¤·¤¿¤é°ì¹Ô¤âÆÉ¤ß¹þ¤ß¤Þ¤»¤ó¡£¤Ê¤Î¤Ç¡¢ÆÉ¤ß½Ð¤·¤¿¤¤ºÇÂç¥ì¥³¡¼¥É¿ô¤ò¤½¤Î¤Þ¤Þµ­Æþ¤¹¤ë
# MySQL ¤Ï max_rows ¤ÎÃͤò¥¼¥í¤Ë¤·¤Æ¡¢limit ʸ¤ÇÂбþ¤¹¤ë¡£
limit ʸ¤Ï wiki.zope.jp ¤Î¤É¤³¤À¤Ã¤¿¤«Ëº¤ì¤¿¤¬¡¢MySQL¤ÏÀßÄê¤Ç¤­¤Ê¤¤¤È¤¢¤Ã¤¿¤Î¤Ç¡¢¤Ò¤ç¤Ã¤È¤·¤ÆÍ­±×¤Ê¾ðÊ󤫤âÃΤì¤Ê¤¤¡£



4 kiyo 2003ǯ 8·î 6Æü 12»þ44ʬ Id=kiyo

>>3
¤Ê¤ëÄø¡¢´Êñ¤À¡ª
request ¤Ï¤Þ¤ÀÊ̤λȤ¤Êý¤¬¤¢¤ê¤½¤¦¤Êµ¤¤¬¤¹¤ë¡£
 
# ¤Ç¤â¤¢¤ó¤Þ¤êÄ´»Ò¤Ë¤Î¤ë¤È¡¢·ê(¥»¥­¥å¥ê¥Æ¥£)¤¢¤±¤ë¤«¤âÃΤì¤Ê¤¤¡£