Archive for category Happy coding

Google Develop Day

  Google开发者日,感觉还行,讲了些 Google 的玩具,有空想玩玩,以前咋没发现这些东西有那么好玩呢,呵呵。还有就是去听 python 它老爹说了说东西,新要做的 python3000 感觉有些好玩的东西,8过还是先把2.5装上吧,本来一直不装,今天突然想装了,于是,装吧 :)

btw: live write beta2 好像不闪了….

No Comments

一个echobot,哈哈

  那天在网上看到有人放出一个 gtalk 的聊天机器人,可以用来查字典,感觉有些好玩,自己也想玩玩,于是,开始吧 Read the rest of this entry »

No Comments

WordPress应该算差不多了吧…

  折腾了好几天,应该算是弄差不多了,这一次不光是改了主题,插件,连源程序都改了,想想都寒啊 ^_^ Read the rest of this entry »

No Comments

Django中的静态文件

  不知道应不应该叫这个名字,反正给我的感觉就是它是静态的页面,纯的html语言,没有python在里面,在刚开始用django的时候,就想把主页做成一个静态的东西,那时候用的是step by step中第一讲的方法,只是把那个写死在程序中的字符串换成了一个文件的内容,然后改那个文件就可以更改主页,但是发现用不了外部链接的css,虽然可以把css内嵌到html文件中,但总觉得的些不爽。后来往后翻了翻step by step,看到最后一讲有说怎么在一个view中渲染一个简单的模板并输出,也就在是urls.py中加上下面这条语句:
(r’^$’, ‘django.views.generic.simple.direct_to_template’,
{‘template’: ‘homepage/index.html’}),
这时候才算找到了好一些的方法,在那个目录下面就可以按正常网页开发了,不过外部链接的文件都要使用基于templates的路径,也就是说那个index.html要放在templatex/hompage目录下,如果下面要使用css文件,还不能使用相对于index.html的相对路径,有些郁闷,正在考虑是不是把所有的css文件什么的放到一个统一的目录下,目录结构大变动啊。呵呵,睡觉了,醒来再折腾吧:)

No Comments

创新的数据总算导完了

  先是存成sql语句,然后回来才想起来,PHP用的是我自己建的表,而Django中要用它的表,两个结构不同,用不了sql语句,于是想到用导入csv文件的办法,刚好setp by step有这个例子,而且Django中可以直接导入csv文件,不用我再去写那些分隔什么的了,还是满方便的,所以就想到了导入csv文件。
  想好了就要开工,那个例子以前做过,所以还有点印象。首先是写module,主要就是构建数据表的结构,想了好久,才觉得大概能够把表结构定下来了,不过还是相当于留了两个备注字段,应该够用了吧,如果不够用需要倒数据的话那真要疯了。其实说疯也有些夸张,再写程序导吧,呵呵。
  一开始写的module中没有主键,主要是看它的文档中说它会自己加上一个自增的主键,所以没去理会,但是在导入的时候,有一个filter要选择一条记录,一开始不知道,使用第一个字段,即申请人做关键字,结果前面写进去的记录当碰到后面相同申请人的记录时,全部被覆盖(我的那个csv文件后面有一个空行,在导入的时候读入最后一行的时候会出错,下标越界,不过还好,前面的数据都导入了)。后来把csv文件分成了大概10条一个的小文件,再导入的时候才发现是这个问题,再看看它的文档说是如果用户自己没有设置自境的主键的话,系统会给设一个,不过我试了,不能调用,于是自己设一个吧(又把表结构重弄了一遍,真的很FT,还好没什么数据),后来问题就解决了。在module.py中的__str__方法中可以设置在管理界面中每一条记录显示的内容,step by step中说还有一个__repr__,但是我用了后没反应,不知道为什么。最后还要加上一个class Admin: pass以开启管理功能。
  在使用导入csv功能的时候,那个urls的映射要弄好,要不然服务器会提示找不到匹配的模式,不予解析。一般是在根目录下的urls.py中设置如果要访问app,则把app中的utls.py包含进来,然后再在urls.py中解析对应于app的地址映射。
  本来想用sqlite数据库,不过用了一段时间,感觉上还是有些不方便的地方,一是管理工具不是很方便,二是性能上处于劣势,最后考虑了一会,还是选用了mysql,导入的时候明显速度快了很多,不过那段导入的代码还是很有用的,到时候如果再换表结构的话,就又要用到它了。
  数据方面总算折腾完了,现在要把原来的表的记录改动一下,让它适应新的表的结构,还有一些细节方面的问题,像文件上传,显示的图标什么的,慢慢做吧,不管怎么说,大头数据导进来了,也没什么好怕的了。

btw: django中不能直接接收2000-01-01格式的字符串作为datetime类的输入,还要把它拆开成’2000′, ’01′, ’01′三个字串,不知道后续版本会不会把这个功能加上,虽然不加也能用,只要用下标把子串取出来就可以了,但总感觉有些不爽。

No Comments

CSS中的ID和class

  本来以为它们两个是没什么太大区别的,但是今天上网上一查,发现还是有些区别的。最主要的大概就是在CSS定义中,ID是以#开头的,而class是以.开头的。而且在网页编程中,一个ID只能出现一次,就像某个东西的标识符一样,在一个页面中,只能有一个,而class是可以出现多次的。看了一篇文章说,id是先找到结构或内容,再套用样式,而class是先定义好样式,再应用到多个结构或内容上,呵呵,还真有点这么回事 :)

No Comments

django的资源文件

  刚看了怎么在django的工程中加入资源文件夹,即放一些静态内容,像html页面,css文件什么的,其实放在外面也可以,但是总感觉有些怪,还好step by step讲到了这一课,其实也没什么难的,它给的例子是在urls.py中加了一行,以解析URL,然后在settings.py中加上了一个相当于常量定义的命令,把一个目录定义成常量,然后在网站根目录下建立了这个目录,于是,就可以了。urls.py中更改的和以前有些不太相同,使用了django.views.static.serve,而此参数需要一个参数,文档根目录,所以需要在后面加上{‘document_root’: settings.STATIC_PATH}),那个settings.需要在开头加上import django.conf import settings以导入模块。其它在网页中就可以使用/site_media来访问./media目录了,那个site_media是在urls.py中定义的,那个patten也有些不同,后面加上了一些东西,r’^site_media/(?P<path>.*)$’,还没太弄懂,过过再说。

No Comments

FileField的相关内容

  由于要存储文件,所以使用了FileField类型的变量,后来学会了查db_api手册,知道了它的方法,比如想设个超链接,可以调用get_FOO_url得到它的路径,不过在这之前要设置好settings.py中MEDIA_URL的值,否则得不到正确的结果,在设置的时候,需要在MEDIA_URL最后的那个目录后加一个/,否则好像地址不能很好的识别。别的还有一些方法,像文件名什么的,另外还有ImageField特有的一些方法还是满不错的。不过不知道为什么我现在不能上传文件名中有中文的文件,不知道是它不支持还是我设置的问题,有空去网上找找,实在不行就只有再骚扰limodou了。 ;)
btw: 如果那个FileField需要提供下载的话,需要在app或整个工程的urls.py中设置一下patten,要不然会出错,系统不认。

No Comments

Django中CharField的choices

  本来以为是比较难的问题,试了一堆记忆中的属性什么的,就是不认,后来骚扰了一下limodou才了解到原来是个这么简单的方法,而且在db-api手册中也有说。诶,看东西看的不仔细,丢人了啊。说说正题吧,就用step by step的例子说吧,本来显示的是M或F,因为直接调用的是address.gender,但是如果调用addres.get_gender_display就可以显示为男或女。简单吧,我怎么就没看到呢?

No Comments

Django中的templates

  昨天想改一下模板的路径,主要是想在每个app中建立一个templates的目录,然后系统直接去那个目录寻找相应app的view的模板,按网上的方法,在settings.py的TEMPLATE_DIRS项中加上了app的templates目录,但是在浏览器中查看的时候,它告诉我找不到模板,后来用Filemon看了一下,它在app目录下的templates中也是按着默认的路径查找的,也就是templates/APP_NAME/ MODE_NAME_list.html文件,于是就把templates改回来了。不清楚是它只能这么找还是我的配置有误。

No Comments