15
十二/08
1

Linux下django开发

在archLinux下做web开发是非常方便的,源里面大部分东西都有了。我们今天来进行django的学习尝试。

首先,安装django,源里面已经打包好了。直接安装,sudo pacman -Sy django

安装完后,我们去/usr/lib/python2.6/site-packages/django目录下,其中python2.6目录是当前我的python版本,当前目录下有个bin目录,建议将此路径加入到系统path里面去,省得每次都要输入完整路径。

我们现在在自己的开发目录下面,比如arch的标准web目录/srv/http下面来创建我们的第一个django项目。

django-admin.py startproject hello 类似ROR,这个脚本为我们自动生成了hello这个项目的整体框架文件。
注意django-admin.py这个脚步要加上完整路径,并且默认是不可执行的,可以通过chmod +x加入可执行权限,或者以python脚本的形式执行。我们来启动服务 ./manage.py runserver

Django version 1.0.2 final, using settings ‘terrysco.settings’
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[15/Dec/2008 01:52:07] "GET / HTTP/1.1" 200 2057
Validating models…
0 errors found
访问本地的8000端口,即可看到django的欢迎页面。
项目目录里面的uls.py负责指定路径到app的映射,类似drupal的菜单系统。这里我们是为了做测试用,所以就直接建立一个test.py,里面写一些测试脚本。
from django.http import HttpResponse
def index(request):
      return HttpResponse("Hello, World.")
很简单吧,讲index请求指定显示hello world内容。到这里还不行,需要在uls.py里面指定。
在urlpatterns里面加入一行(r’^$’, ‘hello.test.index’),这个简单的正则指出如果根路径后面为空,则打印我们的hello world。

当然,这里我们没有分离模板,使用from django.shortcuts import render_to_response则可以使用模板渲染数据。类似PHP+Smarty的技术,模板里面可以加入对传递进来参数的处理。

12
十二/08
5

php和python的比较

python的应用现在越来越多了,想多了解点pygtk和django的东西,但只有一些php和C的基础,而python的语法还是比较独特的。接触python半年多,总结一点和php的比较以及优缺点。

首先,python的性能一直比较争议,而php本身的速度是比java的东西慢,但和db操作起来,肯定是比java的东西快很多了,这算是一个php的优势。并且php的成本较低(LAMP)应该算是很便宜的东东了,而现在支持python的服务器还不是很普遍,对机器要求也较高。下面简单看看语法。

php这种类C的语法是以大括号划分代码块来确定程序逻辑的,而python则是以代码缩进的形式。优缺点都有,缩进自然简化了输入繁琐,有人描述写python程序跟写英文作文一样,虽然这个描述有点夸张,但确实反应了python的优雅语法。唯一比较麻烦的事情就是用惯了类C语法的人对缩进不是很适应,比如我刚用python的时候,程序报错30%是缩进相关的问题,慢慢习惯就好了。下面说说引号,php中有单引和双引,加上dochere语法。单引不解析其内的变量或者转义字符,但是速度较快,所以如果是纯字符串,推荐用单引。而双引会将里面的变量或者转义字符解析后输出。php的dochere语法可以输入较长的字符串,而不用顾及单引和双引的交叉问题,但dochere语法要求较为“严格”,比如必须顶头写,开始标记和结束标记必须相同。而python的三引号语法使用起来很简单,单引和双引则没有区别(这点跟php和java等语言不一样)。

下面看数据类型。别的区别不大,主要是php数组这块,php如果分的比较详细,就是一个数组和关联数组,数组相当于python的列表(list),关联数组相当于python的字典(dictionary, perl中叫哈希hash),另外python还有一个tuple(元组),其中的内容和字符串一样是不可变化的。下面看数据处理,php的大部分数据处理都是数组操作,有一大堆以array_开头的函数可提供功能,数组没有负索引,而python的序列相关操作比较方便,功能更强大。php在一些特殊操作平台用-a参数可以使用交互模式,而python也支持交互模式,一些简单计算可以直接使用。

web方面:php的开发框架比较成熟,大都是mysql数据库驱动的。而python目前比较成熟的开发框架不是很多,流行的有zope,django和豆瓣用的Quixote。也不知道豆瓣当时为什么选择后者,可能当时ror和django这些东西还没有吧。

最后说下OO,现在大部分php的产品还是面向过程的,除了使用一些第三方的开源库。php5引入了很多的面向对象特性,对之前的版本来说,面向对象特性就是个鸡肋。而python的模块,OO机制很不错,也是学习的一个重点。

总之,python的特性有很多,学习它一定不会失望。由于本人水平有限的可怜,这个小文章就当是给想接触python的phper们一点动力吧。

关键字: ,
25
十一/07
0

dive into python

pdf格式,下载地址:http://www.woodpecker.org.cn/diveintopython/

网上比较流行的关于python的电子文档有两个,python简明教程和dive into python。前者对python做了一些简要介绍,程序底子不错的朋友看了它基本可以上手写东西了,但是内容比较少。而这本dive into python内容较为详尽,并且介绍python的流程比较特别。一般的程序类书籍,首先是hello world,然后是数据类型和语言逻辑控制,最后是函数和对象以及网络操作等等。而这本书每个章节首先给出一段代码段,然后逐行分析,逐步让读者了解其中的含义,在这个过程中慢慢了解python的各个方面。不失为一个比较高效的学习方法。

相信通读它并且旁边开个编辑器和shell,完后算是一个真正的python入门者了。不要忘记大量的实践啊!

关键字:
23
十一/06
0

php,perl和python杂谈

先说perl,这是个脚本语言,不过它的功能并不仅限于此,它是一门功能很强大的语言,古老的cgi用perl可以很好的胜任,但是有一部分的perl程序员转向python了,原因是perl语言本身有一些令人迷惑的地方,就连创建perl语言的人都说不清楚。 我刚开始接触perl的时候看到对变量的命名规则就有很多,@,$等等。。自己也说不上这样做的好处跟坏处,总之觉得perl的效率还是可以的,尤其是其强大的正则表达式实现机制和文本操作能力,所以做linux的运维者学习perl是很有助于工作的。(个人意见)

php是现在非常流行的脚本语言,它非常适合网络编程,例如web页面的编写等。本人目前暂时从事php的开发工作,现在很多的网站都倾向于使用php来写脚本,因为它快速,安全性更高(相对的,内置了很多处理函数)。另外不得不提的就是它和perl有很深的渊源,因为最初php是用perl来实现的。

python我是最喜欢python的语法的,跟写英文文章差不多(不知道这样的形容恰当不恰当,呵呵)。当时为了用python的一个工具rrdtool,简单学习了不到一个月的python,给我印象很深刻,据说google的三大官方语言,C++,java和python,足以看出python的流行程度,并且加上一些比较好的web框架如django等,让python在web开发方面也占了很多优势。(对django还在初学阶段,不方便给出和php的一些框架,比如drupal,joomla的比较)

反正,脚本语言有很多,多学没有坏处,只是必须有重点,每个语言适合做自己擅长的事情,这点不要太迂腐。

关键字: , ,