Django入门

三部曲

1. 简介

Django是python语言的Web开发框架。

概述

  Django(发音:/ˈdʒæŋɡoʊ/ JANG-goh) 是用python语言写的开源web开发框架(open source web framework),它鼓励快速开发,并遵循MVC设计。Django遵守 BSD版权,初次发布于2005年7月, 并于2008年9月发布了第一个正式版本1.0 。最新发行版本是Django 1.3.1,于2011年09月10日发布.

  Django 根据比利时的爵士音乐家Django Reinhardt命名,他是一个吉普赛人,主要以演奏吉它为主,还演奏过小提琴等。

设计哲学

  Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以“插件”形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开发和DRY(Do Not Repeat Yourself)原则。

  Django基于MVC的设计十分优美:

  对象关系映射 (ORM,object-relational mapping)

  以Python类形式定义你的数据模型,ORM将模型与关系数据库连接起来,你将得到一个非常容易使用的数据库API,同时你也可以在Django中使用原始的SQL语句。

  URL 分派

   使用正则表达式匹配URL,你可以任意设计的URL,没有框架的特定限定。象你喜欢的一样灵活。

  模版系统

   使用Django强大而可扩展的模板语言,可以分隔设计、内容和Python代码。并且具有可继承性。

  表单处理

   你可以方便的生成各种表单模型,实现表单的有效性检验。可以方便的从你定义的模型实例生成相应的表单。

  Cache系统

  可以挂在内存缓冲或其它的框架实现超级缓冲 -- 实现你所需要的粒度。

  会话(session),用户登录与权限检查

  快速开发用户会话功能。

  国际化

  内置国际化系统,方便开发出多种语言的网站。

  自动化的管理界面

  不需要你花大量的工作来创建人员管理和更新内容。Django自带一个ADMIN site,类似于内容管理系统。

部署

  Django可以运行在Apache上,也可以运行在支持WSGI,FastCGI的服务器上。支持多种数据库,已经支持Postgresql, MySql, Sqlite3,Oracle。

  目前,Google App Engine也支持Django的某些部分。

文档

  Django1.0 建立了强大完整的文档体系 [1](http://docs.djangoproject.com/en/dev/),涵盖了Django的方方面面,并且适合各种水平的读者和开发者. 其中还包含若干个简单的示例,你可以跟随他们一步步体验Django的优美。

2. 安装部署及开发工具

下载地址:

https://www.djangoproject.com/download/

当前下载包:

Django-1.3.1.tar.gz

解压缩Django到C盘根目录

进入DJANGO目录

C:\Django-1.3.1

执行安装命令:

c:\Django-1.3.1> python setup.py install

 

如果命令失败你可以手动将 Django目录拷贝到 Python安装目录中的LIB/SITE-PACKES中去

 

最后一步请将 Django-x.xx\django\bin 中的django-admin.py 拷贝到c:\windows 或者 Python的安装目录中去。

 

测试安装是否成功:

c:\>django-admin.py --version

1.3.1

安装完成

开发工具使用

使用eclipse

给Eclipse安装PyDev插件 

启用Eclipse————如果前面的步骤都正确无误的话,那么Eclipse就该能够正常启动了。 

第一次启动会让你选择一个工作空间,按缺省设置,勾选一下不再提醒,就可以了。

在Help菜单中,选择Install New Software···, 

选择Add按钮,Name:PyDev(这个随便起),Location:http://pydev.org/updates(PyDev的更新地址),OK

 

选择PyDev下的PyDev for Eclipse,别的都不要选,否则依赖检查那关过不去。 (注3)

点下一步,下一步安装 

中间会问你是否信任Aptana、Pydev什么的,信任就可以了

最后重启Eclipse

 

3. Demo

3.1 使用eclipse创建项目:

3.1.1 创建项目:

a. 选择File->New->Other...

b. 选择PyDev->Django->project

c. 按照对话框创建项目

eg:

project:DjangoDemo

version:2.6(python version)

选择数据库。。。

3.1.2 创建application

选择项目->右键->Django->create application

3.1.3 运行

选择项目->右键->run as->Pydev:Django

3.2 使用python命令(备选)

如果你想在指定目录中创建你的项目那么请提前进入目录,我要将项目保存在目录 c:\pysys 中:

执行(同时需要把django-admin.py拷贝到该目录下):

 

C:\pysys>python django-admin.py startproject DjangoDemo

随后大家可以看到在 DjangoDemo目录下生成了 4 个文件:

__init__.py

manage.py

settings.py

urls.py

分别解释一下:

【__init__.py】在Django中,一个项目可以理解成为一个包,这个文件就是告诉PYTHON需要把当前的这个文件夹当作一个“包”来对待。包在PYTHON专业术语中叫做一个模块的集合,它被用来组织相似的文件集合并防止命名冲突。

【manage.py】这是一个实用工具脚本,用来管理你所创建的当前项目,你可以把它理解为先前我们查看Django版本用 django-admin.py 文件,事实上,他们使用的是相同的后端代码。

【settings.py】这是django项目的主要配置文件,在这个文件中你可以指定变量属性,包括诸如数据库设置,站点语言设置。

【urls.py】这同样也是一个配置文件,你可以把它理解为映射URL和Python的功能函数,并处理他们,这是Django中一个比较强大的功能。

安装成功后我们来配置 setting.py 文件:

打开文件设置 -- 

DATABASE_ENGINE = 'mysql'(在1.3版本中该处更改为 django.db.backends.mysql)

DATABASE_NAME = 'python_project' #自己创建的数据库名称

DATABASE_USER = '' #填写数据库用户名

DATABASE_PASSWORD = '' #填写数据库密码

配置完后打开命令行,在项目目录下输入: python manage.py syncdb 初始化数据库,系统会提示你创建一个superuser 项目超级用户,成功后请查看数据库中表格,看看是否已经成功添加了若干数据表。

启动项目并浏览:python manage.py runserver

  python manage.py runserver 0.0.0.0:8000

打开你的浏览器,输入:localhost:8000 看看是不是已经成功的启动了项目(如果你想使用不同的端口请输入 python manage.py runserver 8080)。

到此Django项目简单创建完成

3.3 简单例子

django是一个典型的MVC WEB开发框架,但是在Django中我们把view视为controllor, 把template视为view。也就是变了个名字,其实意义还是相同的,如果各位读者还不明白MVC的含义,请主动GOOGLE一下。

 

在Django中,view用来检索和操作数据,但是通过template把数据展示给浏览者。它和MVC本质是相同的,但请大家不要搞混了术语的叫法。

当我们运行一个项目时,系统会生成一个默认欢迎页面,作为程序员我们第一个思考的问题就是如何建立我们自己的“欢迎页面”?为了实现这一点,我们需要创建一个“接入点”,并通过URL的形式指向我们的应用程序,当有人访问这个这个URL的时候,Django召唤特定的函数。

一个是view其实就是python函数,通过产生相应页面来回应页面请求。如果我们想要创建自己的主页,那么先要在项目中创建一个“应用程序”:

python manage.py startapp bookmarks

这个命令执行后同样会生成4个文件,抛开test.py文件,其余3个为:

【__init__.py】告诉python, bookmarks也是一个包

【view.py】这就是一个view文件

【models.py】 用来和数据库打交道的model

下面我们首先来编辑 view.py

from django.http import HttpResponse

def main_page(request):

output = '''

<html>

<head><title>%s</title></head>

<body>

<h1>%s</h1><p>%s</p>

</body>

</html>

''' % (

'Django Bookmarks',

'Welcome to Django Bookmarks',

'Where you can store and share bookmarks!'

)

return HttpResponse(output)

解释一下上述代码:

我们从django.http中引入了HttpResponse类,我们需要它是为了生成响应页面。

我们定义了一个python函数,并使用了参数request,这个参数将包括用户的输入和其他的信息,比如request.get request.post

然后我们用HTML构建了一个响应页面,包在httpresponse对象中并将它返回。

在输出这个页面之前,我们需要配置URL文件。

编辑url.py文件:

from django.conf.urls.defaults import *

from bookmarks.views import *

urlpatterns = patterns('',

(r'^$', main_page),

)

回顾先前讲到的URL文件,它随着我们创建项目而自动生成,这个文件中包含了应用程序的有效URL链接,把每一个URL都映射到一个Python函数。

URL的语法看上去并不陌生,它是一个典型的正则表达式类型。

首先我们看到,我们从 django.conf.urls.defaults 引入了所有,这个模块提供了定义URL的必要函数。

其次,我们从 bookmarks.views 引入了所有,这个是连接到我们的view文件所必须要做的

最后是patterns函数定义URL表,把r'^$' 映射到 main_page函数

这个正则表达式可能让你比较郁闷,它是一个包含了两个字符的原始字符串(raw string,我们用 r' '来表示原始字符串), ^ 和 $,如果python碰到了原始字符串,那么反斜杠和空白序列将保留在该字符串中。

在正则表达式中 ^表示字符串的开始,$表示字符串的结束,那么^$就表示不包含任何内容,也就是一个空字符串。如果我们想访问main page并把它作为根,那么我们不需要URL前包含任何东西。

正则在python中的详细解释:

http://docs.python.org/lib/module-re.html

这种URL管理方式给了我们很大的灵活性,它不同于传统的,通过文件来表示链接的PHP, (当然了,有些PHP框架已经改进了它的URL管理方式,也能通过函数来表示链接),也不同于mod_python中无法自动映射函数,给我们完全的自由去将URL和函数对应。

虽然我们的页面比较简单,但我们将来可以用templated来将其加工和修改,接下来我们需要研究的是数据库模块 database models 和如何存储及管理我们的数据。

 

 

参考地址:

eclipse pydev plugin 开发指南

http://pydev.org/manual_adv_django.html

django

https://www.djangoproject.com/download/

文档:

https://docs.djangoproject.com/en/1.3/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值