Python论坛  - 讨论区

标题:[python-chinese] 貌似django的ORM是线程不安全的?

2007年04月20日 星期五 23:00

马踏飞燕 honeyday.mj在gmail.com
星期五 四月 20 23:00:05 HKT 2007

一个多线程的程序,在线程中用django的orm进行数据的更新操作,发现无法更新成功,报出来下面的错误:

Traceback (most recent call last):
  File "D:\python_home\python24\Lib\site-packages\wx-2.8-msw-unicode\wx\_core.py
", line 13830, in 
    lambda event: event.callable(*event.args, **event.kw) )
  File "D:\python_home\honeyday.org\SIA\modules\MainPanel.py", line 212, in GetF
ecthPage
    c.save()
  File "D:\python_home\python24\Lib\site-packages\django\db\models\base.py", lin
e 223, in save
    db_values + [pk_val])
  File "D:\python_home\python24\Lib\site-packages\django\db\backends\util.py", l
ine 19, in execute
    self.db.queries.append({
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 174: ordina
l not in range(128)

单线程就没这个毛病。。。出在save()的时候。

不知道大家有没有遇到过这个问题吗?

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

2007年04月21日 星期六 14:22

追风逐月 chinesexu在gmail.com
星期六 四月 21 14:22:36 HKT 2007

¿´Ñù×Ó²»ÏñÊǶàÏ̵߳ÄÔ­Òò°¡£¬¸Ð¾õÊDZàÂëÎÊÌâ £¬¿ÉÄÜÊÇûÔÚÏß³ÌÖÐÉèÖÃĬÈÏ×Ö·û¼¯°É£¿

On 4/20/07, Âí̤·ÉÑà <honeyday.mj在gmail.com> wrote:
>
> Ò»¸ö¶àÏ̵߳ijÌÐò£¬ÔÚÏß³ÌÖÐÓÃdjangoµÄorm½øÐÐÊý¾ÝµÄ¸üвÙ×÷£¬·¢ÏÖÎÞ·¨¸üгɹ¦£¬±¨³öÀ´ÏÂÃæµÄ´íÎó£º
>
> Traceback (most recent call last):
>   File "D:\python_home\python24\Lib\site-packages\wx-
> 2.8-msw-unicode\wx\_core.py
> ", line 13830, in 
>     lambda event: event.callable(*event.args, **event.kw) )
>   File "D:\python_home\honeyday.org\SIA\modules\MainPanel.py", line 212,
> in GetF
> ecthPage
>     c.save()
>   File
> "D:\python_home\python24\Lib\site-packages\django\db\models\base.py", lin
> e 223, in save
>     db_values + [pk_val])
>   File
> "D:\python_home\python24\Lib\site-packages\django\db\backends\util.py", l
> ine 19, in execute
>     self.db.queries.append({
> UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 174:
> ordina
> l not in range(128)
>
> µ¥Ï߳̾ÍûÕâ¸ö벡¡£¡£¡£³öÔÚsave()µÄʱºò¡£
>
> ²»ÖªµÀ´ó¼ÒÓÐûÓÐÓöµ½¹ýÕâ¸öÎÊÌâÂð£¿
> _______________________________________________
> 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 c# and opensource
blog:http://www.chyni.cn
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070421/a798aa10/attachment.html 

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

2007年04月22日 星期日 12:39

haur hekun06在gmail.com
星期日 四月 22 12:39:13 HKT 2007

django µÄorm¡£¡£¡£¡£Ð§ÂʺÃÏñ²»Ì«¸ß°¡£¬
¿´µ½¹ýÒ»¸ö¹ØÓÚת»»ºóµÄsqlÖ´ÐÐÇé¿ö£¬sqlÓï¾äÌ«¶à£¬Ò»¸öÒ³ÃæÇëÇóÀï¹ý¶àµÄsqlÓï¾ä
ÌرðÊǹØÁª²éѯ·½ÃæµÄ£¬¸üΪÅÓ´ó£¬ÇëlimoduÏÈÉúÄܸøµã½¨ÒéºÍ½âÊÍ»òÕß˵°ïÖú£¬Ð»Ð»£¡
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070422/7677d5d9/attachment.html 

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

2007年04月22日 星期日 14:48

limodou limodou在gmail.com
星期日 四月 22 14:48:50 HKT 2007

On 4/22/07, haur <hekun06在gmail.com> wrote:
> django 的orm。。。。效率好像不太高啊,
> 看到过一个关于转换后的sql执行情况,sql语句太多,一个页面请求里过多的sql语句
> 特别是关联查询方面的,更为庞大,请limodu先生能给点建议和解释或者说帮助,谢谢!

我还没有做过太复杂的操作。而且建议可以使用sql来做这事。

-- 
I like python!
UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad
My Blog: http://www.donews.net/limodou

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

2007年04月22日 星期日 19:51

马踏飞燕 honeyday.mj在gmail.com
星期日 四月 22 19:51:48 HKT 2007

在 07-4-21,追风逐月<chinesexu在gmail.com> 写道:
> 看样子不像是多线程的原因啊,感觉是编码问题 ,可能是没在线程中设置默认字符集吧?
>
查了半天,确实锁定为编码的问题,但是太奇怪了,save()的操作是成功的,也就是说数据确实更新到了数据库,但是可能是save之后的重新load的时候出的问题。
最怪异的是虽然出错的字段是char型的,但是存入的却是URL的md5值,也就是说是一个ascii字符串,应该不存在编码的问题啊!我没办法,最后做了一个decode('UTF-8')就不报错了。。。。难道md5.hexdigest()回来的是一个unicode
str?type了一下是str啊。。。

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

2007年04月23日 星期一 10:31

mouqx xu zsuxqm在gmail.com
星期一 四月 23 10:31:32 HKT 2007

On 4/22/07, 马踏飞燕 <honeyday.mj at gmail.com> wrote:
> 在 07-4-21,追风逐月<chinesexu at gmail.com> 写道:
> > 看样子不像是多线程的原因啊,感觉是编码问题 ,可能是没在线程中设置默认字符集吧?
> >
> 查了半天,确实锁定为编码的问题,但是太奇怪了,save()的操作是成功的,也就是说数据确实更新到了数据库,但是可能是save之后的重新load的时候出的问题。
> 最怪异的是虽然出错的字段是char型的,但是存入的却是URL的md5值,也就是说是一个ascii字符串,应该不存在编码的问题啊!我没办法,最后做了一个decode('UTF-8')就不报错了。。。。难道md5.hexdigest()回来的是一个unicode
> str?type了一下是str啊。。。
decode()得到的是一个unicode类型的东西
正好说明需要一个unicode,而不是str。
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese

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

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

    你的回复:

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

    Zeuux © 2025

    京ICP备05028076号