Python论坛  - 讨论区

标题:[python-chinese] mysqldb操作的中文问题解决了,但是对pylons还很不了解

2006年12月12日 星期二 09:30

janux janux在boulder.com.cn
星期二 十二月 12 09:30:31 HKT 2006

¾­¹ý¸÷λµÄÌáʾºÍ2ÌìµÄŬÁ¦ÖÕÓÚÓÐÁ˽á¹û,ÏÂÃæÊÇpylonsµÄconntroller²Ù×÷mysqlºÍ´«µÝ²ÎÊýµÄÀý×Ó,:
#!c:/activepython
# -*- coding: utf-8 -*-
from helloword.lib.base import *
from helloword.models.inii8 import *
import MySQLdb
class PageController(BaseController):
    def index(self,title):
#¿ØÖÆÆ÷ÖпÉÒÔ²åÈëÖÐÎÄ,°ÑÎļþ±£´æΪutf±àÂë
 c.content=u"lllllllllllllllllllllllllllÎ÷°àÎ÷°àlllllllllll"
        return render_response('/page.myt')
  
    def insert(self):
 conn = MySQLdb.connect("localhost",user="root",passwd="root",db="sp9",charset="utf8")
 cu = conn.cursor()
 name=request.params['cname']
 
 print "name=%s" % name
 isql = """insert into test(cname) values(%s )""" 
 para = (name)
 cu.execute("""insert into test(cname) values(%s )""",name)
 #cu.execute(isql,para)
 conn.commit()
 fd=''
 cu.execute("select cname from test ")
 for row in cu.fetchall():
  for fdr in row:
   print fdr
   fd=fdr
 #return Response(fd) 
 #c.content=u'\u4e2d\u56fd'
 c.content=fd
 #conn.close() 
 return render_response('/page.myt')
==================================================
ÉÏÃæµÄ´úÂë±È½ÏÂÒµ«ÊÇ˵Ã÷Á˽â¾öÎÊÌâµÄÒªµã.
1.Ê×ÏÈpythonµÄ´úÂëÎļþÐèÒªÓÃutf-8±àÂë±£´æ,pylonsÖеÄtemplateºÍÍøÒ³ÎļþÒ²ÐèÒªutf-8±àÂë;
2.ÐèÒª ÉùÃ÷#!c:/activepython  # -*- coding: utf-8 -*-
3.³ÌÐòÖгöÏÖµÄÖÐÎÄ×îºÃ²ÉÓÃunicode±àÂë:Èçc.content=u" aaaÎ÷°àÎ÷°àll23l" »òÕß×öºÃ±àÂëת»»c.content=u'\u4e2d\u56fd'(javaµÄstruts´¦Àí¹ú¼Ê»¯ÎÊÌâʱÊÇÕâÑù´¦ÀíµÄ )
4.mysqlÁ¬½ÓÉùÃ÷:conn = MySQLdb.connect("localhost",user="root",passwd="root",db="sp9",charset="utf8")
5.sqlÓï¾ä²ÉÓÃÈýÒýºÅ:isql = """insert into test(cname) values(%s )""" (msyqldbµÄÎĵµÖÐÊÇÕâÑù×öµÄ)
====================================================
ÕæµÄͦÂé·³,²»ÖªµÀÓÐûÓиü¼òµ¥µÄ·½·¨?²»ÖªµÀÊÇÔÚ¸¸ÀàBaseController×öºÃ´¦Àí,»¹ÊÇ×ö¸öfilterÄØ?ÁíÍâ±¾È˶ÔpylonsÖеÄrouterºÍtemplate»¹±È½Ï²»½â,ÈçºÎ¶¨Òå¶à¸öController²¢½øÐÐÅäÖÃ?ÔÚÒ»¸öÒ³ÃæÖÐÒýÓöà¸ötemplate?Ï£ÍûÄܹ»µÃµ½´ó¼ÒÖ¸µ¼..

-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20061212/282dc05b/attachment-0001.html 

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

2006年12月12日 星期二 09:40

limodou limodou在gmail.com
星期二 十二月 12 09:40:39 HKT 2006

On 12/12/06, janux <janux在boulder.com.cn> wrote:
>
>
> 经过各位的提示和2天的努力终于有了结果,下面是pylons的conntroller操作mysql和传递参数的例子,:
> #!c:/activepython
> # -*- coding: utf-8 -*-
> from helloword.lib.base import *
> from helloword.models.inii8 import *
> import MySQLdb
> class PageController(BaseController):
>     def index(self,title):
> #控制器中可以插入中文,把文件保存为utf编码
>  c.content=u"lllllllllllllllllllllllllll西班西班lllllllllll"
>         return render_response('/page.myt')
>
>     def insert(self):
>  conn =
> MySQLdb.connect("localhost",user="root",passwd="root",db="sp9",charset="utf8")
>  cu = conn.cursor()
>  name=request.params['cname']
>
>  print "name=%s" % name
>  isql = """insert into test(cname) values(%s )"""
>  para = (name)
>  cu.execute("""insert into test(cname) values(%s )""",name)
>  #cu.execute(isql,para)
>  conn.commit()
>  fd=''
>  cu.execute("select cname from test ")
>  for row in cu.fetchall():
>   for fdr in row:
>    print fdr
>    fd=fdr
>  #return Response(fd)
>  #c.content=u'\u4e2d\u56fd'
>  c.content=fd
>  #conn.close()
>  return render_response('/page.myt')
> ==================================================
> 上面的代码比较乱但是说明了解决问题的要点.
> 1.首先python的代码文件需要用utf-8编码保存,pylons中的template和网页文件也需要utf-8编码;
> 2.需要 声明#!c:/activepython  # -*- coding: utf-8 -*-
> 3.程序中出现的中文最好采用unicode编码:如c.content=u" aaa西班西班ll23l"
> 或者做好编码转换c.content=u'\u4e2d\u56fd'(java的struts处理国际化问题时是这样处理的
> )
> 4.mysql连接声明:conn =
> MySQLdb.connect("localhost",user="root",passwd="root",db="sp9",charset="utf8")
> 5.sql语句采用三引号:isql = """insert into test(cname) values(%s )"""
> (msyqldb的文档中是这样做的)
> ====================================================
> 真的挺麻烦,不知道有没有更简单的方法?不知道是在父类BaseController做好处理,还是做个filter呢?另外本人对pylons中的router和template还比较不解,如何定义多个Controller并进行配置?在一个页面中引用多个template?希望能够得到大家指导..
>
>
pylons需要这么麻烦吗?怎么感觉基本上没有封装啊,是不是有问题啊。

-- 
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]

2006年12月12日 星期二 10:24

Liming_Do Liming_Do在smics.com
星期二 十二月 12 10:24:45 HKT 2006

Pylons是使用sqlalchemy或者sqlobject的,为什么要把connection和SQL语句写在controller里面?

-----Original Message-----
From: python-chinese-bounces在lists.python.cn
[mailto:python-chinese-bounces在lists.python.cn]On Behalf Of limodou
Sent: Tuesday, December 12, 2006 9:41 AM
To: python-chinese在lists.python.cn
Subject: Re: [python-chinese]mysqldb操作的中文问题解决了,但是对pylons还
很不了解


On 12/12/06, janux <janux在boulder.com.cn> wrote:
>
>
> 经过各位的提示和2天的努力终于有了结果,下面是pylons的conntroller操作mysql和传递参数的例子,:
> #!c:/activepython
> # -*- coding: utf-8 -*-
> from helloword.lib.base import *
> from helloword.models.inii8 import *
> import MySQLdb
> class PageController(BaseController):
>     def index(self,title):
> #控制器中可以插入中文,把文件保存为utf编码
>  c.content=u"lllllllllllllllllllllllllll西班西班lllllllllll"
>         return render_response('/page.myt')
>
>     def insert(self):
>  conn =
> MySQLdb.connect("localhost",user="root",passwd="root",db="sp9",charset="utf8")
>  cu = conn.cursor()
>  name=request.params['cname']
>
>  print "name=%s" % name
>  isql = """insert into test(cname) values(%s )"""
>  para = (name)
>  cu.execute("""insert into test(cname) values(%s )""",name)
>  #cu.execute(isql,para)
>  conn.commit()
>  fd=''
>  cu.execute("select cname from test ")
>  for row in cu.fetchall():
>   for fdr in row:
>    print fdr
>    fd=fdr
>  #return Response(fd)
>  #c.content=u'\u4e2d\u56fd'
>  c.content=fd
>  #conn.close()
>  return render_response('/page.myt')
> ==================================================
> 上面的代码比较乱但是说明了解决问题的要点.
> 1.首先python的代码文件需要用utf-8编码保存,pylons中的template和网页文件也需要utf-8编码;
> 2.需要 声明#!c:/activepython  # -*- coding: utf-8 -*-
> 3.程序中出现的中文最好采用unicode编码:如c.content=u" aaa西班西班ll23l"
> 或者做好编码转换c.content=u'\u4e2d\u56fd'(java的struts处理国际化问题时是这样处理的
> )
> 4.mysql连接声明:conn =
> MySQLdb.connect("localhost",user="root",passwd="root",db="sp9",charset="utf8")
> 5.sql语句采用三引号:isql = """insert into test(cname) values(%s )"""
> (msyqldb的文档中是这样做的)
> ====================================================
> 真的挺麻烦,不知道有没有更简单的方法?不知道是在父类BaseController做好处理,还是做个filter呢?另外本人对pylons中的router和template还比较不解,如何定义多个Controller并进行配置?在一个页面中引用多个template?希望能够得到大家指导..
>
>
pylons需要这么麻烦吗?怎么感觉基本上没有封装啊,是不是有问题啊。

-- 
I like python!
UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad
My Blog: http://www.donews.net/limodou
_______________________________________________
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

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

2006年12月12日 星期二 11:24

Bruce Wang number5在gmail.com
星期二 十二月 12 11:24:01 HKT 2006

On 12/12/06, janux <janux在boulder.com.cn> wrote:
>
> 真的挺麻烦,不知道有没有更简单的方法?不知道是在父类BaseController做好处理,还是做个filter呢?另外本人对pylons中的router和template还比较不解,如何定义多个Controller并进行配置?在一个页面中引用多个template?希望能够得到大家指导..
>

建议:
1)  先去找本书看看,熟悉一下MVC的概念
2)  先用Django或者TurboGears, 玩得有感觉了,再来用pylons或者simpleweb

-- 
simple is good
http://brucewang.net
skype: number5

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

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

    你的回复:

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

    Zeuux © 2025

    京ICP备05028076号