Python 的归档

Python 下的 ip2long 和 long2ip

PHP 提供了 ip2long 和 long2ip 两个函数,实现了 IP 字符串与其对应整型值之间的转换。而在 Python 中没有类似的函数,所以自己实现了一下,很简单:

import socket import struct

def ip2long(ipstr):     return struct.unpack("!I", socket.inet_aton(ipstr))[0]

def long2ip(ip):     return socket.inet_ntoa(struct.pack("!I", ip))

测试:

>>> ip2long('127.0.0.1') 2130706433 >>> long2ip(2130706433) '127.0.0.1'

继续阅读本文……

发表评论

lighttpd + webpy 启动时出错

调了大半天,火挺大,还好总算解决了。

运行环境:

  • gentoo
  • python 2.5.2
  • lighttpd 1.4.21
  • webpy 0.31

直接跑 /work/www/test/main.py 没问题,交给跑 fastcgi 就有问题,错误提示:

2009-02-22 06:09:47: (log.c.97) server started 2009-02-22 06:09:47: (mod_fastcgi.c.1051) the fastcgi-backend /work/www/test/main.py failed to start: 2009-02-22 06:09:47: (mod_fastcgi.c.1055) child exited with status 1 /work/www/test/main.py 2009-02-22 06:09:47: (mod_fastcgi.c.1058) If you're trying to run PHP as a FastCGI backend, make sure you're using the FastCGI-enabled version. You can find out if it is the right one by executing 'php -v' and it should display '(cgi-fcgi)' in the output, NOT '(cgi)' NOR '(cli)'. For more information, check http://trac.lighttpd.net/trac/wiki/Docs%3AModFastCGI#preparing-php-as-a-fastcgi-programIf this is PHP on Gentoo, add 'fa

继续阅读本文……

发表评论 (2)

Django 快速实战入门

发表评论 (3)

Django 快速实战入门(八):部署 Django

本节中,我们要彻底脱离测试服务器,以 gentoo+nginx+flup 为例,把我们的留言板部署到正式的服务器中。

在我们的 Web 服务器架构中,nginx 作为前端的 HTTP 服务器,而 flup 在后端以 fastcgi 的方式运行。在 nginx 中设置所有对动态内容的请求都交由后端的 flup 来处理。

继续阅读本文……

发表评论 (5)

Django 快速实战入门(七):admin 应用

管理后台对于每个网站来说都是必须,在管理后台中,我们可以添加、编辑和删除网站内容。

Django 中引入了 admin 应用,可以帮助我们快速地建立管理后台。

下面,我们就要利用 Django 附带的 admin 应用来为我们的留言板创建一个管理后台。

继续阅读本文……

发表评论 (5)

Django 快速实战入门(六):表单模型

在与用户的交互过程中,表单发挥了十分重要的作用,多数 Web 应用都带有许多的表单处理。与数据模型类似,如果使用传统的开发方法,那么表单页面的编写和提交结果的验证和处理将成为开发者一大头疼事。

因此,Django 中将表单抽象为模型,集表单生成、内容验证为一体。通过视图控制将表单模型、数据模型结合在一起,就可以很容易地实现表单结构的设计、对用户提交数据的验证和数据的保存入库等操作。

下面我们继续上一节中的示例,为留言板创建一个表单页面。

继续阅读本文……

发表评论 (1)

Django 快速实战入门(五):数据模型

ORM 与 CRUD

在当今绝大多数的 Web 应用中,数据库已经成为不可或缺的一个重要组成部分。对于许多应用来说,使用传统的开发方法,仍然要编写不少 SQL 语句,让许多开发者感到枯燥乏味。

由此,在许多面向对象的开发模型中,引入了对象关系映射(ORM )机制,对关系数据库进行抽象与建模。引入了 ORM 之后,对数据库的操作不再是直接通过 SQL 语句,而是直接操作于数据对象。

Django 作为一个优秀的 Web 开发框架,它也实现了 ORM,支持 CRUD。在许多应用中,SQL 语句大多数都是比较简单的,因此 CRUD 基本上能满足大多数场合的应用,大大提升了开发效率。

下面我们就要使用 Django 的 ORM 机制,建立一个简单的留言板,来领略一下无 SQL 的应用开发。

继续阅读本文……

发表评论 (3)