`

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/

分享到:
评论

相关推荐

    django入门与实践.zip

    《Django入门与实践》这份资源是一份针对初学者的Python Web开发教程,重点介绍了Django框架的基础知识和实际应用技巧。Django是Python编程语言中最受欢迎的Web框架之一,以其“快速、可扩展且优雅”的特性深受...

    Django入门与实践教程1

    【Django入门与实践教程1】是一份针对初学者的详尽教程,旨在引导读者从零开始构建一个实际的Django项目。教程涵盖了从环境搭建到项目部署的全过程,涉及了Django框架的核心概念和技术。 首先,【环境搭建】章节会...

    最简单的django入门与实践开发

    以上内容涵盖了Django入门与实践的方方面面,从最基本的环境搭建到最终的项目部署。每个章节都紧密结合实践,穿插有实例和项目练习,使得教程既浅显易懂又具有实用性,非常适合对Python Web开发感兴趣的新手使用。...

    python django入门源码

    Python Django入门源码是针对初学者的一份宝贵的教育资源,它涵盖了Python编程语言的基本概念以及Django框架的基础应用。Django是用Python编写的一款高级Web框架,它遵循模型-视图-控制器(MVC)设计模式,旨在简化...

    最简单的Python Django入门教程.pdf

    【Python Django入门教程】 Django是一个基于Python的开源Web应用框架,遵循MVC(模型-视图-控制器)设计模式,但在Django中通常被称为MTV模式。它的核心目标是简化复杂、数据库驱动的网站开发,强调组件的重用性、...

    DJango入门案例+超详细步骤

    **DJango入门案例详解** Django,作为Python领域内的一个强大Web框架,因其高效、安全且易于学习的特点,被广大开发者所青睐。本教程将基于一个实际的入门案例,逐步介绍如何使用Django从零开始构建一个简单的网页...

    django入门-增删改实例

    这个入门实例将引导我们了解如何利用Django进行用户信息的增删改操作,这也是Web应用中常见的功能需求。下面,我们将详细探讨这个主题。 首先,我们需要了解Django的基本结构。一个Django项目通常由多个应用程序...

    django入门到放弃

    **Django入门到放弃**,这是一段概括性的话语,暗示了从初识Django到深入学习的过程中可能会遇到的挑战。Django是一个基于Python的Web框架,它以其高效、安全和可扩展性著称,是许多开发者构建Web应用的首选工具。本...

    Python——django入门教程PPT课件.pptx

    Python——Django 入门教程 本文将详细介绍 Python 中的 Django 开发框架,包括 Django 的历史、设计哲学、MVC 和 MTV 设计模式、环境搭建、第一个 Django 应用等知识点。 Django 简介 Django 是一个由 Python ...

    Django入门新闻管理系统

    Django入门新闻管理系统。入门的,新手可以看下哈。。。 ================================================== Django的环境: Python的安装: python-2.7.1.msi Django的安装: 去djangoproject.com下载最新的版本...

    python3 Django入门与实践

    标题《Python3 Django入门与实践》所指的是介绍Python语言开发的Django Web框架入门与实践的书籍。Django作为一个高级的Python Web框架,遵循MVC(模型-视图-控制器)架构模式,拥有强大、快速、安全等特点,适合...

    Django入门中文文档

    在Django入门中文文档中,首先会介绍Django的基本概念和架构,然后引导学习者完成Django的安装。文档会从Django的基本概念入手,比如“模型层”、“视图层”、“模板层”和“表单”等,帮助初学者构建起整个Web应用...

    django入门与实践.pdf

    "Django入门与实践" 本文档提供了 Django 框架的入门和实践指南,涵盖了从基础到高级的知识点。下面是本文档的知识点摘要: 一、Django 介绍 * 什么是 Django?Django 是一个基于 Python 的免费开源 web 应用框架...

    django入门博客实例源码

    **Django入门博客实例源码解析** Django是一款用Python编写的高级Web框架,它遵循“ Batteries Included ”的理念,提供了许多内置功能和强大的工具,让开发者能够快速地构建高质量的Web应用。在这个入门博客实例中...

    Django入门基础教程:django模板

    Django入门基础教程:django模板 Django入门基础教程:django模板

    Django入门和安装环境+MYSQL

    【标题】:“Django入门和安装环境+MYSQL” 在Python Web开发领域,Django是一个非常受欢迎的开源框架,以其“ Batteries included ”的理念,提供了许多内置功能,如ORM(对象关系映射)、模板引擎、身份验证系统...

    django入门项目源码含数据库,一个简单的django项目

    **Django入门项目源码分析** 本项目是一个基于Django框架构建的简单入门级应用,旨在帮助初学者了解和掌握Django的基本用法和核心概念。Django是Python编程语言中的一款强大、高效的Web开发框架,它遵循模型-视图-...

    Django入门.docx

    【Django入门】 Django是Python的一个高级Web框架,它以“快速开发”和“约定优于配置”的理念为核心,提供了一整套强大的功能,包括模型(ORM)、模板系统、URL路由、表单处理以及内置的认证和管理界面等。本文将...

    Django入门开发文档

    ### Django入门开发文档知识点概述 #### 一、Web框架概览 - **Web框架定义**:Web框架是一种软件工具包,旨在简化Web应用程序的开发过程。它为开发者提供了一个结构化的环境,允许他们专注于应用程序的功能性开发,...

Global site tag (gtag.js) - Google Analytics