写你的第一个Python Django实例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

写你的第一个Django应用 | 第一部分

•原文地址:/en/dev/intro/tutorial01/

•Creating a project

•The development server

•Database setup

•Creating models

•Activating models

•Playing with the API

从示例学习。

开始之前,请确保 Django 已经安装完毕。先运行 Python,若正常,再输入 import django。如果运行无误,则说明 Django 已成功安装。

$ python

Python 2.5.2 (r252:60911, Feb 22 2008, 07:57:53)

[GCC 4.0.1 (Apple Computer, Inc. build 5363)] on darwin

Type "help", "copyright", "credits" or "license" for more information.

>>> import django

>>>

新建项目(Project)

你可以将你的 project 放置在任何目录下,从终端中,用 cd 命令进入理想的目录,然后运行命令,django-admin.py startproject mysite,这将创建一个名为 mysite 的项目,在其文件夹中,还自动生成了 4 个文件:

•init.py

•manage.py

•settings.py

•urls.py

这些文件的作用是:

•init.py: 这是一个空文件,指示这个目录是 Python 的一个 package。

•manage.py: 一个命令行工具,可以用来对 Django 项目进行各种操作。

•settings.py: Django 项目的设置文件。

•urls.py: Django 项目 URL 声明文件;网站的 "目录"。

运行本地服务器

Django 本身包含一个用纯 Python 语言编写的轻量级服务器,便于快速开发你的项目,而不用花费过多精力设置服务器,比如 Apache,除非你准备好正式发布网站。

在 mysite 目录中,如果你紧跟着教程到此,可以直接运行命令 python manage.py

runserver,启动服务器。你可以看到屏幕出现:

Validating models...

0 errors found.

Django version 1.0, using settings 'mysite.settings'

Development server is running at http://127.0.0.1:8000/

Quit the server with CONTROL-C.

此文字说明 Django 服务器已启动,可以用浏览器访问 http://127.0.0.1:8000/,如果一切正常,你将会看到 Django 的起始页。It worked!

设置数据库

接下来,编辑 settings.py 文件。这个文件是一个普通的 Python 模块,包含模块级别的变量

来规定 Django 设置。现在我们修改关于数据库的设置连接参数,去吻合你将使用的数据库。

•DATABASE_ENGINE -- 数据库引擎,常见的有:"postgresql_psycopg2"、"mysql" 或 "sqlite3"。还可选择 "postgresql" 或 "oracle"。

•DATABASE_NAME -- 数据库名称。若使用 SQLite3,数据库名称是数据库文件名和其保存的绝对路径。

•DATABASE_USER -- SQLite3 不用修改,为空。

•DATABASE_PASSWORD -- 默认为 localhost。SQLite3 不用修改。

•DATABASE_HOST -- 默认为 default。SQLite3 不用修改。

使用 SQLite 数据库最简单,设置 DATABASE_ENGINE 为 sqlite3. 若使用其他类

型的数据库,在此应通过命令创建新的数据库。

当你编辑 settings.py 文件时,顺便注意一下文件底部 INSTALLED_APPS 设置,默认包含如下 apps:

•django.contrib.auth

•django.contrib.contenttypes

•django.contrib.sessions

•django.contrib.sites

这些是 Django 项目默认包含的应用,比如认证系统、内容类型框架、session 框

架、多网站管理的应用,这些 app 独立存在,可以根据需要保留或删除,也可应

用在其他项目中。

每个 app 至少对应一个数据库表,我们在 mysite 目录中运行如下命令来生成数

据库表:

python manage.py syncdb

syncdb 会搜索 INSTALLED_APPS 中的所有 app,生成必要的书库据表。你会看

到提示询问是否要为认证系统创建一个超级用户,输入 yes,根据提示完成。

创建模型

我们现在已经有了一个 mysite 的项目环境,接下来让我们做点事情。

你在 Django 写的每个应用都包含一个 Python package,以特定规则保存在你的 Python 目录中。Django 通过一个工具来自动生成 app 应用的基本目录,所以你可以专心编写代码而不用担心如何创建目录。

•??目(project)与应用(app)

项目可以包含多个应用,一个应用可存在于多个项目中。应用,可以是 blog 系

统,公共记录数据库,或是一个简单的投票系统等等。

在这个教程中,我们将在 mysite 中创建简单的投票poll 应用。结果这个应用被绑定在项目中,也就是通过 mysite.polls 引用投票应用。在后面的教程中,我们会讨论如何包装发布这个应用。

为了创建名为 polls 的应用,确定在 mysite 的目录中,输入命令:

python manage.py startapp polls

这会创建一个名为 polls 的目录包含应用基本文件,其中包括:

polls/

__init__.py

models.py

views.py

我们通过修改 models.py 文件,来新建两个模型:Poll 和 Choice。模型 Poll 包含问题和发布时间。模型 Choice 包含选择文本和投票数;且每个选择被指定到一个投票上。事实上,即新建两个 Python 类。修改 models.py 文件为如下代码所示:

from django.db import models

class Poll(models.Model):

question = models.CharField(max_length=200)

pub_date = models.DateTimeField('date published')

class Choice(models.Model):

poll = models.ForeignKey(Poll)

choice = models.CharField(max_length=200)

votes = models.IntegerField()

注:在 Django 0.96 之前的版本中,max_length 应改为 maxlength。

代码很直观。每个模型即是一个类,是 django.db.models.Model 的子类。每个模型有不同数量的类变量,每个变量对应一个数据库字段。

每个字段是 Field 类的一个实例,比如,CharField 是字符字段,而 DateTimeField 是日期时

相关文档
最新文档