存档

‘技术’ 分类的存档

安装Diango出现的小问题

2009年5月24日 没有评论

我的是vista,在按照网上的教程安装django后,使用django-admin.py startproject newtest命令运行一直不成功:会直接把django-admin.py文件的内容显示出来。

在前面加个 python, 会提示找不到文件django-admin.py。于是,我在命令行下进入C:\Python26\Scripts, 再运行python django-admin.py startproject newtest,就会看到一个新的文件夹newtest出现,应该是这样了。

我的工作目录想设施为d:\django,于是,我将django-admin.py复制到d:\django,命令行下进入d:\django,运行python django-admin.py startproject newtest,这时候就成功了。

不知道为什么会这样,网上的文章都是说直接用“django-admin.py startproject newtest”就可以运行,而且好像是说任意目录都可以运行,也许只有我自己的电脑是这样?我的系统是vista home版本。

分类: 技术 标签: ,

python程序练习–简单电话薄

2009年5月18日 没有评论

python程序练习–简单电话薄代码

#python程序练习–简单电话薄 
#樊海军 
#fanhaijun.com 
#Python 2.6.2 
 
import cPickle as p 
import string 
class phonebook: 
        def __init__(self): 
                pblist=[] 
 
def pb_add(): 
        #print "This is the ADD function" 
        while 1: 
                print ‘\nPlease input a NEW name["Q" to back to main menu]:\n’ 
                add_name=raw_input("Name:") 
 
                if add_name=="Q": 
                        main() 
                else: 
                        add_sex=raw_input("Sex:") 
                        add_tel=raw_input("Tel:")                       
                pbdict={"Name":add_name,"Sex":add_sex,"Tel":add_tel}            
                print "You just input:" 
                for i in pbdict.items(): 
                        print ("%s:%-5s  ") % (i[0],i[1]), 
 
                pb.pblist.append(pbdict) 
                del pbdict 
             print ("\nRecord added sucessfully! Continue?(Y/N)\n")              
        while 1: 
                       con=raw_input() 
            if con=="Y": 
                            pb_add() 
                    elif  con=="N": 
                            pb_save() 
                            main() 
            else: 
                print ("\nError! Continue?(Y/N)\n") 
 
def pb_browser(): 
        #print "This is the BROWSER function" 
        #print pb.pblist 
 
        print "\nThere are %s records:\n"% len(pb.pblist) 
        print "*******************************************" 
        print "  ID     NAME     SEX      TEL" 
        print "*******************************************" 
    for i in pb.pblist: 
               #print "===========================================" 
                print "%3s     " % (pb.pblist.index(i)+1), 
                print "%-8s" % i["Name"], 
                print "%-8s" % i["Sex"], 
                print "%-8s" % i["Tel"] 
            print "===========================================" 
        main()  
 
def pb_del(): 
        #print "This is the DEL function" 
 
        while 1: 
                print "\nPlease input the ID of the record you want to delete:[Input 0 to main menu]\n" 
                del_id=raw_input() 
                if int(del_id)==0: 
                        main() 
                elif del_id=="" or int(del_id)<0 or int(del_id)>len(pb.pblist): 
                        #print "\nPlease input a RIGHT ID :\n"   
                        continue 
 
                elif int(del_id)<=len(pb.pblist) and int(del_id)>0: 
                        del pb.pblist[int(del_id)-1] 
            pb_save() 
 
def pb_search(): 
        #print "This is the SEARCH function" 
 
    while 1: 
        print "Please input what ever you want to search:" 
        s=str(raw_input()).lower() 
        k=0 
        id_list=[] 
        for i in pb.pblist: 
            if s in i["Name"].lower() or s in i["Sex"].lower()  or s in i["Tel"].lower(): 
                k+=1 
                id_list.append(pb.pblist.index(i)) 
        print "\nThere are %s results:\n"% k 
        #print id_list 
 
            print "*******************************************" 
        print "  ID     NAME     SEX      TEL" 
        print "*******************************************" 
        for j in id_list: 
            print "%3s     " % str(j+1), 
            print "%-8s" % pb.pblist[j]["Name"], 
                    print "%-8s" % pb.pblist[j]["Sex"], 
            print "%-8s" % pb.pblist[j]["Tel"] 
                print "==========================================="        
 
                print ("\nContinue?(Y/N)\n") 
        while 1: 
                       con=raw_input() 
            if con=="Y": 
                            pb_search() 
                    elif  con=="N": 
                            main() 
            else: 
                print ("\nError! Continue?(Y/N)\n")
 
def pb_file(): 
        #print "This is the file function" 
        try: 
                f=file(pbfile) 
                pb.pblist=p.load(f) 
        except: 
                pb.list=[] 
        finally: 
                f.close() 
 
def pb_save(): 
        #print "This is the SAVE function" 
        try: 
                f=file(pbfile,"w") 
                p.dump(pb.pblist,f) 
                print "\nRecords saved successfully!\n" 
        finally: 
                f.close() 
 
def pb_quit(): 
        print "Thanks for your using!" 
        exit() 
 
def main(): 
        print """\ 
____________________________________________________  
|       Please select your choice:                 | 
|__________________________________________________| 
|       [A]: Add a record.                         | 
|       [B]: Browser the records.                  | 
|       [D]: Delete a record.                      | 
|       [S]: Search.                               | 
|       [Q]: Quit.                                 | 
|__________________________________________________| 
        \ 
        """ 
        while 1: 
                opp=raw_input() 
                if opp=="A": 
                        pb_add() 
                if opp=="B": 
                        pb_browser() 
                if opp=="D": 
                        pb_del() 
                if opp=="S": 
                        pb_search() 
                if opp=="Q": 
                        pb_quit() 
 
pb=phonebook() 
pbfile=("pb.dat") 
pb_file() 
 
main()
分类: 技术 标签: ,

python, Zope,Plone之间的关系和安装

2009年5月13日 没有评论

Plone
Plone是什么?
Plone是免费的、开放源代码的内容管理系统(Content Management System,CMF)。Plone着重于适合各种组织使用。它带有一个工作流引擎、预先配置的安全和角色系统、一组内容类型和多语言支持。有来自全世界的众多开发者、作者和测试者每天为Plone做各种贡献。Plone是基于内容管理框架的。(Content Management Framework)。
主页:http://www.plone.org  中文主页:http://www.czug.org 中文商业支持:http://www.zopen.cn

什么是内容管理系统?

要给内容管理系统(CMS)下个定义很困难,比找个要卖给你CMS的人还难。简单来说,CMS用来管理内容,通常是为了web site管理内容。CMS的主要目的是用来方便的进行内容的创建、发布和修复,以适应商业应用。

内容管理的麻烦在于它的琐碎或不可能实现

不同CMS可以是否集成web分成两类:基于web的系统和非基于web的系统。Plone是免费的、开放源代码的基于web的内容管理系统。

为什么使用基于web的内容管理系统?

理解Plone这样的内容管理系统最简单的方法就是将它与标准web站点设计工具(如Macromedia Dreamweaver)进行比较。他们都可以在远程计算机上制作页面,并提交用来确认或发布。但有以下四个方面的区别:

任何具有所需权限的用户可在任何位置制作网页,使用标准浏览器,无需任何特殊软件。CMS的使用比Dreamweaver和FTP容易,只需很少的培训,许多制作任务可分配给不熟练的人员。因此,CMS使得更多的用户可在WEB上创建和编辑内容。同时,较少的培训和较低的技巧使得制作和维护的成本降低。

通过输入文本、上载文件到站点预先制作的模板中来制作页面,保证页面的统一风格。即使直接制作发布web页面的人员非常多,也可保证风格的统一,更重要的是内容结构的一致性也可保证。

CMS中的工作流控制可充分使用,web管理员的工作可有效的分配给工作在不同地点人员,并不会降低安全性,并保证质量标准。

不同版本的文档自动保存,需要时可进行自然的审核跟踪。

内容管理系统的这些优点对大型组织或大型合作项目更为重要。

什么是内容管理框架?

内容管理框架是一个应用,包括一系列Zope工具。这些工具构成的框架提供了许多内容管理系统需要的关键服务。内容管理框架可作为单独产品使用,或者如 Plone一样建立在它的基础之上。内容管理框架提供了核心的工具如Workflow(工作流)、个性化和目录化。内容管理框架的开发由Zope公司领导,是一个开发源代码的产品,受益于世界上众多的开发者的辛勤劳动。

主页:http://cmf.zope.org

什么是Zope?

Zope是一种开发源代码的web应用服务器,用python语言编写。它是可升级、稳固、功能强大的系统,包括一个对象数据库、web服务器和多种模板语言。Zope主要由Zope公司开发和提供支持,也可从来自世界各地的开发者得到帮助。

主页:http://www.zope.org 中文主页:http://www.czug.org 中文商业支持:http://www.zopen.cn

为什么使用Zope和Plone?

Zope和Plone是开放源代码软件(OSS),也就是说任何人可自由取得源代码。制作Zope和Plone的人的商业模型是从咨询服务中获取利益,主要在于定制或企业化应用。其他开放源代码CMS系统还有Midgard,Bitflux,OpenCMS和Wyona。

专有的和开放源代码的内容管理系统从技术上讲并没有什么不同。在两个阵营中,都有好的、中等的和较差的产品。文档和支持的质量也有很大不同。主要的不同是开放源代码的CMS相比专有系统而言,开放源代码的CMS由较小的公司制作。这就增加了对这些小公司能够持续多长时间,能够提供怎样的支持的怀疑。以我来看,不同之处更多的是表面的,而不是实际的东西。开放源代码的产品更小,对一个客户或一个关键人物的离去更加敏感,而专有系统产品较大,受收购(如 Allaire被Macromedia收购)和IT股票市场的反复无常(如Broadvision)的影响。不同在于,对开放源代码产品,用户可以取得源代码,可以进行维护、定制和开发。没有制作者的积极介入,这些工作对专有系统是无法完成的。这才是采用开放源代码产品的关键原因。

为什么采用Zope和Plone而不是其他开放源代码的CMS?Plone基于Zope,Zope是为建设内容管理软件的一个框架。在某种意义上, Zope是web应用的操作系统。CMF就是一个web应用,用来方便建设CMS。Plone就是一个基于CMF,运行在Zope上的内容管理系统,带有自己的一组模板和文件类型。以我们的观点(我们指的是由Web和Internet指导组WISG设立的CMS工作组的观点)Zope比其他竞争性产品更胜一筹在于以下原因:

Zope是面向对象的,在某种意义上,在Zope中出现的所有内容(网页、图像、链接、文件等)都是对象,包含在一个对象数据库中。数据库是层次化的,而不是关系型的,特别适合于层次化的文件结构。技术人员会认为数据库是行列结构的表格的集合,与主键值相关。Zope的数据库是不同的,与普通的文件系统结构很类似,对象包含在对象中。

Zope对象数据库中包含对象的所有老版本,这对撤销修改,对协作文档的版本控制和需要审核轨迹的元素非常有用。

Zope中包括大量特别适合大型组织和协同工作的工具,后面的手册中会介绍。例如:预定义的数据库搜索,基于灵活的搜索标准,自动显示符合特定用户定义条件的所有对象。

Zope可在所有平台上使用,包括:Unix,Linux,Mac OS和广受欢迎的Windows(98,2000,XP,NT),而其他开放源代码CMS或专有系统并非如此。

Zope是一个非常友好的开发环境。可通过点击按钮完成脚本的定制拷贝,而将原始版本保留在原来的位置,这是我遇到过的具有最好安全性的系统。

Zope中可方便的设计结构化XML文档,带有链接到文档结构的工作流。这是大型组织管理系统的基本特性,促进了文档结构和风格的一致性和流水线工作流。

最后,Zope为大型组织使用而设计,具有以下特性:大量贡献者致力于合作项目,他们位于不同地点,使用不同的平台。强大的组织需要灵活性和安全性,需要定义具有不同浏览、书写、编辑、批准大型项目不同部分权限的本地角色,可伸缩到大量对象和服务器。

第七,Zope team与竞争者的文化的不同对大型组织至关重要。Zope的一个客户US Navy,使用Zope管理RDproject,这是一个大型,公共部门组织,关注灵活性和安全性,对大部分公司都一样,无论公共的还是私有的。

就Plone(区别于Zope)而言,我认为超越基于Zope的通用的CMS的概念。Plone至少给Zope增加了两个有用的特性,对工程科学web站点非常重要:

整洁、雅致的导航框架,依赖于文件夹和内容视图,而不是html文档链接(需要更新)。受益于导航快捷方式(如公告栏,显示最近几天创建和修改的对象,避免了要浏览整个站点才能找到这些对象)的帮助

创建复杂结构文档的简单工具,如PIQ和UPC表单,每个文档的不同部分对不同的观众可见,可定制的确认路径

第一个特性使基于Plone的站点可以简单,快速的开始使用。第二个特性使它易于管理,不像其他CMS更多的构思发布而不是内容的处理。

什么是Python?

Python是功能强大的、解释性、交互式、面向对象的编程语言。Python是开放源代码的,可运行在几乎所有系统平台之上。Zope主要由Python编写,部分用C语言进行了优化。google的核心语言就是python,大名鼎鼎的BT下载软件

主页:http://www.python.org http://www.python.cn

BitTorrent也是python写的。

上述文章引用自: http://blog.sina.com.cn/s/blog_4bc5a0960100073x.html
===============================
以下文章转自:http://ddhjwxy.spaces.live.com/blog/cns!8A016BC37DDEF613!237.entry
CMS内容管理网站zope+plone的建立(安装篇)
这两天突然有个做个内容网站的想法,于是先把网站假设好了。现在先把安装部分先贴出来,以免年后正式开始建立网站的时候出现疏漏。
下面就开始我的安装过程:
我市全新安装一台Linux FC4(rhel 4和 rhel 3也可以),安装时只要选中Develop Tools就可以了,其他的软体都是用不到的。
一、安装python2.3.5(43MB)
1.从www.python.org下载到python2.3.5解压到临时目录下。
2.进入python的解压目录。
3.运行 ./configure –with-threads
4.运行 make && make install
5.在python2.3.5安裝后將/usr/local/bin/目錄下的python2.3和python拷貝到/usr/bin/目錄下(这一步仅在rhel3中需要,原因是/usr/bin/目錄下有python2.3和python這兩個文件,但是据我的觀察,這兩個文件的實質還是我原來的python2.2的,所以一定要有上面的那個步驟,这也可能是巧合)
二、安装PIL(Python Imaging Library 1.1.5 or higher)
1.从http://effbot.org/downloads/#Imaging下载PIL软件tar包,并解压到临时目录。
2.进入解压的目录。
3.运行$cd Imaging-1.1.5
4.运行$python setup.py build_ext -i
5.运行$python selftest.py
6.运行$python setup.py install
PS.为保证PIL安装的正确性,编译前请先确定TKINTER(需要tix的rpm包和devel包、fontconfig的rpm和devel包以及xorg-X11-devel),TCL(包括devel包),libjpeg(包括devel包),freetype2(包括devel包),zlib(包括devel包)这些包必须安装,否则无法正常安装完毕。
三、安装zope
1.从http://www.zope.org 下载并解压安装包
2.运行./configure –prefix=/usr/local/zope
3.运行make && make install
4.建立一个用户zope密码zope
5.运行/usr/local/zope/bin/mkzopeinstance.py
home 设定为 /home/zope
user 设定为 zope
密码 设定为 zope

四、安装Plone 2.1.1
1.从www.plone.org上下载与zope相应版本plone的tarball
2.解压到临时目录。
3.将解压出的内容都拷贝到/home/zope/Products下,并注意文件权限。group和owner都设定成zope用户和zope组。
4.将/home/zope/etc/zope.conf中的effectiv-user 设定为zope
五、运行/home/zope/bin/runzope &
六、打开浏览器输入http://ip:8080测试网站的正确性。点击Zope Management Interface 进入设定界面,需要输入的用户名密码就是三-5中设定的用户。
这样CMS(zope with plone)就搭建成功了。

分类: 技术 标签: , ,

关闭QQ空间

2009年4月22日 2 条评论

当你为情所困,不能自已

当你厌倦了虚无,精神萎靡

当你感到浪费生命,不愿继续

当你陷入莫名的纠葛,烦躁难忍

当你慢慢发掘自己变老,毫无魅力

当你……

你也许想到关闭

关闭如今令你痛苦的QQ空间

一个曾经的小小房间

当你想的时候

却找不到关闭的路

始终

徘徊在空间的门口

任它荒芜

来来往往

渐渐冷落

其实,它就在那里,就在那里,

就在帮助里,

只是你没有发现,

只是你没有用心去找……

其实

你不用烦恼,不用郁闷

问题会解决

一切都会过去

……

今天,

只要点击下面的地址

只要点进去

http://imgcache.qq.com/qzone/web/load_login_2.htm

你会释然……

曾经的空间,如同石子抛入大海

不会在你面前出现

就如同

曾经的我一样

分类: 技术 标签:

转移lunarpages的域名dns到godaddy

2009年4月21日 没有评论

相信大家都知道lunapages的域名管理了,一个字,烂!!!!

昨天刚买的主机加两个域名,其中一个是送的。

等了将近一天,才收到确认开通信息,原来是人工操作的!

今天进去了域名控制面板,发现功能基本没有,不能添加cname,不能添加mx记录。。就是一个二级域名而已,上网找了下,原来要做这些也可以,不过要写信给客服。。事实上,不仅lunapages,包括bluehost,hostmoster, 都没有办法修改a记录、mx记录等。

决定转出,转到godaddy!这么差劲的东西,就是天天放广告,吸引人来买;买了就后悔

还有主机管理,人家用cpanel,你也用cpanel,为什么你的就那么难看难用呢?那个文件管理器,连在线压缩也没有,就有个在线解压,还默认不能上传超过5M的文件!我刚做个网站肯定要大于5M了!也不能全选,只能一个一个的点了删除!

不知道在想什么。

决定撤消主机,昨天刚买的,今天就撤,域名就有点麻烦,因为刚注册的不能转移,但是它的管理面板根本不能用,所以就想先改dns,改到godaddy那里去管理,等过段时间再转过去。

具体方法:

进去godaddy的域名管理,在上面菜单点第三个Tools—Off-site DNS,

然后去点 Add Off-site DNS, 输入域名,点确认。

等过一会,再进来,会看到已经好了,域名的后面一列就是dns的地址了,去到lunarspages的域名面板,https://manage.opensrs.net,用主机的账户名和密码登陆,进去可以修改dns,完。

这个其实对任意服务商的域名管理都有效。

分类: 技术 标签:

Phoca Gallery Perfect!!!

2009年4月18日 没有评论

这个相册组件相当好!!!!

可以批量添加图片,只要将图片放在目录中就可以自动识别并生成缩略图、水印,更可以显示其他信息。

image 

而且,是免费的!!!

Thumbnail Menu Pro AIO

2009年4月18日 没有评论

3-State Thumbnails Menu.
Display your Joomla menu as a thumbnails with 3-State icons
It comes with mambot and component to assign 3 State icons to your menu item…
More Info And Demo: http://www.josxp.com/content/view/83/126/#tm
Download Link:
http://uploadbox.com/files/dd73b7e12e
http://rapidshare.com/files/199508584/Thumbnail_Menu_Pro_unzip.rar
http://www.easy-share.com/1903703657/Thumbnail_Menu_Pro_unzip.rar
http://fanhaijun.com/wp-content/uploads/2009/04/thumbnail_menu_pro_unzip.rar

另外,刚才安装时候当发现新建一个菜单使用“别名(Alias)”的时候,此模块生成的菜单会无法识别

解决方法:

在“modules\mod_thumbnailspro”下编辑 mod_thumbnailspro.php

在第33行前插入一行,添加

case ‘menulink’:

即是:

case ‘menulink’:
case ‘url’:
if ( eregi( ‘index.php\?’, $row->link ) ) {
    if ( !eregi( ‘Itemid=’, $row->link ) ) {
        $row->link .= ‘&Itemid=’. $row->id;
    }
}
break;

How to put a watermark on the photos of VirtueMart

2009年4月11日 没有评论

For all of you that want to watermark productimages with cache, here it is:
Download sript here:
http://fanhaijun.com/wp-content/uploads/files/watermark-with-cache.zip
make a folder called "watermark" in your root and put in the files called:
– cache
– watermark.php
– watermark.png –> change this picture to your picture!
Then set the permissions 777 to the folder "cache".
The change the htaccess.txt to the folowing parameters:

Code:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule \.(gif|jpeg|jpg)$ ../../../../watermark/watermark.php [QSA,NC]

Now upload the htaccess.txt to components/com_virtuemart/shop_image/product/
and if you want to the thumbnails in components/com_virtuemart/shop_image/product/resized.
AND RENAME TO .htaccess
And you are done.

Works on joomla 1.5.10 and virtuemart 1.1.3.

SMTP, Sendmail, PHP Tutorial For Joomla 1.5 and Gmail Integration.

2009年4月8日 没有评论

If you’re reading this, you’ve probably got the same problem I had: you get some sort of error when you use the Joomla Contact form. You’ve read through all the online tutorials and you’ve probably tried all the suggestions and manipulated the contacts, the server under “global config” etc., but to no avail. Am I right.

For some reason I could not get the PHP or SMTP function to work on my digital signage site. I already have Gmail set up as my email client in Hostmonster and it works fine. I also had all my contact information setup with the client email as my email of use. The problem I was getting was that the sendmail was working for the “copy” email, but it was not sending me the email–which was the most important part of the process.

Here was the problem and here was how I fixed it.

Under my MX mail settings in Hostmonster Cpanel, I changed one thing. Where it says, “Always accept mail locally even if the primary mx does not point to this server” my settings were set to “yes.” I merely changed them back to “no” and now it all works swimmingly. I hope this helps. The reason I’m posting it is because I spent WAY too long trying to figure this out–for just a simple fix.

It doesn’t work, for me……..Haijun

Source link

分类: 技术 标签: , , , ,

Using Joomla’s "Built In" Search Engine Friendly URL system

2009年3月6日 没有评论

Joomla’s Search Engine Friendly URL system has been greatly improved in recent releases, and now works quite nicely (in most cases) out of the box.  Some people really do struggle with setting up SEF, so here is a very basic guide to getting it up and running!
1. Determine whether your server is running WINDOWS or LINUX (you can determine this by looking at Tools>System information in the Control Panel.  This is VITAL!

LINUX SERVERS:

  1. Log into your admin control panel and go to Global Configuration
  2. Navigate to the section with Search Engine Friendly URL’s settings
  3. Turn on SEF URL’s, and turn on Use mod_rewrite (requires Apache)
  4. Using an FTP client, find the file in the ROOT OF YOUR JOOMLA DIRECTORY (i.e. if it’s installed in the root of your web server it’ll be found in /public_html/htaccess.txt but if you installed Joomla into a folder named "myjoomlainstallation" it will be in /public_html/myjoomlainstallation/htaccess.txt)
  5. Rename any existing file called ".htaccess" to ".htaccessold"
  6. Rename your "htaccess.txt" file to ".htaccess"
  7. Save your changes in the Admin control panel (you’ll be promted to change the htaccess file as we just did)
  8. Go to the homepage of your site (e.g. www.mydomain.com or www.mydomain.com/myjoomlainstallation) and check the links in your site are working OK.

Some potential areas where problems may occur:

  1. Joomlafish – you will need a specific plugin for this, I would advise using SEF components such as Artio or sh404 with appropriate plugin
  2. A bug was present in the "dropdown" box style of contact pages whereby if the user sent a message to any contact other than the default, the email would be sent however the user would be redirected to a 404 page.  As far as we’re aware this has not yet been resolved
  3. Cached pages – occasionally you may need to clear the cache (via the Admin control panel, global operations) if a page or link continues to appear or work incorrectly
  4. Non-standard components, modules and plugins – they should work, but some do have "quirks" – generally best to contact the developers via their support mechanisms.

WINDOWS SERVERS:

  1. Log into your admin control panel and go to Global Configuration
  2. Navigate to the section with Search Engine Friendly URL’s settings
  3. Turn on SEF URL’s, DO NOT USE MOD_REWRITE
  4. Go to the homepage of your site (e.g. www.mydomain.com or www.mydomain.com/myjoomlainstallation) and check the links in your site are working OK.
  5. Note, unless you use a url "prettifier", your URL’s will have /index.php? in them.  Our suggestions? Use linux!  Drop us a message to find out how much YOU could save!

分类: 技术 标签: ,