越来越喜欢Python这种动态编译语言,一个简单的DOS窗口,可以做只要你想得到的事。在很早以前我有过对Python的简单了解,也是直到最近在学习正则表达式才重新对她进行较深入的学习,而这一篇主要还是说一下关于Django框架,她是WEB框架中的一种,其主要选择是因为她的风格和我自己的风格很相像。

一、安装

http://www.djangoproject.com/download/可以下载到最新版,可以放在任何目录下然后执行:python setup.py install。测试一下吧:

>>> import django
>>> django.VERSION
(1, 1, 0, final', 1)

二、创建一个项目

转到Django目录:django-admin.py startproject mysite 其中mysite是项目名称。自动在Django目录下生成mysite目录。

三、运行开发服务器

Django开发服务是可用在开发期间的,一个内建的,轻量的WEB服务,所以在开发过程中无须使用产品级的WEB服务(比如:Apache),只需要执行:python manage.py runserver 8080 当然必须在mysite目录下。你可以通过http://127.0.0.1:8080来访问您的站点。

四、模型(Django数据库层)

(一)、配置数据库,缺省都在:settings.py

(二)、创建模型

在mysite目录下执行:python manage.py startapp books她会自动创建几个模型相关文件在mysite目录下。当然这不是说你就创建一个模型了,我们还得写一些代码。这里的Django模型只是用Python代码形式描述数据在数据库中的定义。

第一步:编写生成文件当中的models.py用Python代码来描述你的模型。

第二步:安装模型。

这一步你需要修改settings.py中INSTALLED_APPS项,把你创建的模型添加到列表中,以便告诉Django需要激活这个模型。你可以先使用python manage.py validate来验证你是否已经正确,如果有错误会明细指出。你还可以用python manage.py sqlall books命令先检查一下Django为你生成的SQL命令是否正确,当然这需要跟你目前配置的数据库来判断。最后用python manage.py syncdb命令来同步你的模型和数据库定义,她傻了一点只会增加你不存在的表,不能同步模型的修改数据库,当然还是有办法的。

第三步:一起HIGHT一下

你可以通过SHELL窗口完成不可思议的操作:

>>> from books.models import Publisher
>>> publisher_list = Publisher.objects.all()
>>> publisher_list
[<Publisher: Apress>, <Publisher: O'Reilly>]

五、Django站点管理

这是Django内置的,你只需要简单配置就可以有一个简单漂亮的站点管理平台,你可以通过他来做一些数据增删改动作。

第一步:对setting.py一点改动

  1. django.contrib.admin加入到INSTALLED_APPS
  2. django.contrib.auth、django.contrib.contenttypes、django.contrib.sessions加入到INSTALLED_APPS
  3. django.middleware.common.CommonMiddleware、django.contrib.sessions.middleware.SessionMiddleware、django.contrib.auth.middleware.AuthenticationMiddleware加入到MIDDLEWARE_CLASSES

第二步:运行python manage.py syncdb同步站点管理需要的数据库表。

第三步:将admin访问配置在URLconf。

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
  (r'^admin/', include(admin.site.urls)),
)

接下来还有什么呢?

The Django Book这里你可以获取到很完整的Django教程,当然他是中文的。

当然也有像The Definitive Guide to Django: Web Development Done Right权威书籍。

最后可别忘了http://www.djangoproject.com/比任何资源来得好,提供非常完整的文档,如遇到BUG咱们上面有人。 😎