写你的第一个Python Django实例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 是日期时